Submission #74368453
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<int> e[100010], r[100010];
int t, bt[100010], c[100010];
void dfs(int u){
bt[u] = t;
for (int v : e[u])if (!bt[v])c[v] = (c[u] + 1) % 3, dfs(v);
for (int v : r[u])if (!bt[v])c[v] = (c[u] + 2) % 3, dfs(v);
}
bool sc[100010];
int ct[100010][3];
int ce[100010];
int main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> n >> m;
while (m--){
int u, v;
cin >> u >> v;
e[u].emplace_back(v);
r[v].emplace_back(u);
}
for (int i = 1; i <= n; ++i)if (!bt[i])++t, sc[t] = 1, dfs(i);
for (int i = 1; i <= n; ++i){
++ct[bt[i]][c[i]];
for (int j : e[i])
sc[bt[i]] &= c[j] == (c[i] + 1) % 3, ++ce[bt[i]];
}
long long rs = 0;
for (int i = 1; i <= t; ++i){
if (!sc[i]){
int s = ct[i][0] + ct[i][1] + ct[i][2];
rs += 1ll * s * s;
} else {
if (ct[i][0] && ct[i][1] && ct[i][2])
rs += 1ll * ct[i][0] * ct[i][1] + 1ll * ct[i][1] * ct[i][2] + 1ll * ct[i][2] * ct[i][0];
else rs += ce[i];
}
}
cout << rs << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Blackout |
| User | szt100309 |
| Language | C++23 (GCC 15.2.0) |
| Score | 1700 |
| Code Size | 1224 Byte |
| Status | AC |
| Exec Time | 31 ms |
| Memory | 20272 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 1700 / 1700 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 0_00.txt, 0_01.txt, 0_02.txt |
| All | 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00.txt | AC | 2 ms | 3768 KiB |
| 0_01.txt | AC | 2 ms | 3784 KiB |
| 0_02.txt | AC | 2 ms | 3696 KiB |
| 1_00.txt | AC | 2 ms | 3664 KiB |
| 1_01.txt | AC | 3 ms | 5304 KiB |
| 1_02.txt | AC | 18 ms | 16628 KiB |
| 1_03.txt | AC | 19 ms | 20196 KiB |
| 1_04.txt | AC | 19 ms | 20096 KiB |
| 1_05.txt | AC | 19 ms | 20272 KiB |
| 1_06.txt | AC | 18 ms | 20208 KiB |
| 1_07.txt | AC | 19 ms | 20084 KiB |
| 1_08.txt | AC | 18 ms | 20200 KiB |
| 1_09.txt | AC | 18 ms | 20164 KiB |
| 1_10.txt | AC | 19 ms | 20084 KiB |
| 1_11.txt | AC | 19 ms | 20008 KiB |
| 1_12.txt | AC | 19 ms | 20092 KiB |
| 1_13.txt | AC | 17 ms | 16964 KiB |
| 1_14.txt | AC | 12 ms | 10024 KiB |
| 1_15.txt | AC | 11 ms | 10076 KiB |
| 1_16.txt | AC | 13 ms | 12484 KiB |
| 1_17.txt | AC | 7 ms | 4644 KiB |
| 1_18.txt | AC | 30 ms | 14624 KiB |
| 1_19.txt | AC | 30 ms | 14428 KiB |
| 1_20.txt | AC | 30 ms | 14532 KiB |
| 1_21.txt | AC | 31 ms | 14588 KiB |
| 1_22.txt | AC | 29 ms | 14460 KiB |
| 1_23.txt | AC | 29 ms | 14476 KiB |
| 1_24.txt | AC | 28 ms | 14536 KiB |
| 1_25.txt | AC | 29 ms | 14588 KiB |
| 1_26.txt | AC | 29 ms | 14408 KiB |
| 1_27.txt | AC | 28 ms | 14440 KiB |
| 1_28.txt | AC | 28 ms | 14576 KiB |
| 1_29.txt | AC | 29 ms | 14768 KiB |
| 1_30.txt | AC | 30 ms | 14440 KiB |
| 1_31.txt | AC | 29 ms | 14316 KiB |
| 1_32.txt | AC | 29 ms | 14536 KiB |
| 1_33.txt | AC | 29 ms | 14660 KiB |
| 1_34.txt | AC | 27 ms | 12744 KiB |
| 1_35.txt | AC | 22 ms | 9796 KiB |
| 1_36.txt | AC | 25 ms | 11516 KiB |
| 1_37.txt | AC | 29 ms | 13696 KiB |
| 1_38.txt | AC | 21 ms | 8828 KiB |
| 1_39.txt | AC | 20 ms | 8168 KiB |
| 1_40.txt | AC | 29 ms | 14204 KiB |
| 1_41.txt | AC | 28 ms | 13892 KiB |
| 1_42.txt | AC | 23 ms | 10696 KiB |
| 1_43.txt | AC | 23 ms | 10056 KiB |
| 1_44.txt | AC | 28 ms | 13032 KiB |
| 1_45.txt | AC | 18 ms | 7624 KiB |
| 1_46.txt | AC | 28 ms | 13312 KiB |
| 1_47.txt | AC | 29 ms | 14024 KiB |
| 1_48.txt | AC | 21 ms | 9400 KiB |
| 1_49.txt | AC | 24 ms | 11332 KiB |