4846 | 2023. 03. 31 22:43:56 | UnluckY | Testnevelés óra | cpp11 | Elfogadva 50/50 | 246ms | 38876 KiB |
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> v;
vector<int> top, top2, color;
bool circle = false;
vector<bool> seen;
void dfs1(int x){
if (color[x] == 2){circle = true; return;}
if (color[x] == 3) return;
color[x] = 2;
for (int i : v[x]){
dfs1(i);
}
color[x] = 3;
}
void dfs2(int x){
if (seen[x]) return;
seen[x] = true;
for (int i : v[x]){
dfs2(i);
}
top.push_back(x);
}
void dfs3(int x){
if (seen[x]) return;
seen[x] = true;
for (int i = v[x].size()-1; i >= 0; i--){
dfs3(v[x][i]);
}
top2.push_back(x);
}
int main(){
int n, k; cin >> n >> k;
v.assign(n+1, {});
seen.assign(n+1, false);
color.assign(n+1, 1);
for (int i = 0; i < k; i++){
int a, b; cin >> a >> b;
v[a].push_back(b);
}
for (int i = 1; i <= n; i++){
if (color[i] == 1) dfs1(i);
if (circle) break;
}
if (circle){
cout << 0;
return 0;
}
for (int i = 1; i <= n; i++){
dfs2(i);
}
reverse(top.begin(), top.end());
seen.assign(n+1, false);
for (int i = n; i >= 1; i--){
dfs3(i);
}
reverse(top2.begin(), top2.end());
bool one = true;
for (int i = 0; i < n; i++){
if (top[i] != top2[i]) one = false;
}
if (one){
cout << 1 << endl;
for (int i : top){
cout << i << " ";
}
return 0;
}
cout << 2 << endl;
for (int i : top) cout << i << " ";
cout << endl;
for (int i : top2) cout << i << " ";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1964 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2100 KiB | |||
3 | Elfogadva | 0/0 | 193ms | 14812 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2636 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2812 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2976 KiB | |||
7 | Elfogadva | 3/3 | 2ms | 2916 KiB | |||
8 | Elfogadva | 1/1 | 3ms | 2948 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3052 KiB | |||
10 | Elfogadva | 3/3 | 4ms | 3308 KiB | |||
11 | Elfogadva | 3/3 | 4ms | 3532 KiB | |||
12 | Elfogadva | 1/1 | 4ms | 3728 KiB | |||
13 | Elfogadva | 2/2 | 4ms | 3708 KiB | |||
14 | Elfogadva | 3/3 | 3ms | 3700 KiB | |||
15 | Elfogadva | 1/1 | 167ms | 11776 KiB | |||
16 | Elfogadva | 3/3 | 158ms | 21168 KiB | |||
17 | Elfogadva | 5/5 | 61ms | 19332 KiB | |||
18 | Elfogadva | 1/1 | 231ms | 26532 KiB | |||
19 | Elfogadva | 2/2 | 165ms | 12548 KiB | |||
20 | Elfogadva | 3/3 | 216ms | 33384 KiB | |||
21 | Elfogadva | 4/4 | 238ms | 38876 KiB | |||
22 | Elfogadva | 4/4 | 246ms | 38860 KiB |