4528 | 2023. 03. 29 12:48:09 | Ablablabla | Testnevelés óra | cpp17 | Elfogadva 50/50 | 264ms | 37528 KiB |
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<vector<int>> csucsok;
vector<int> bejar;
bool jo = true;
void dfs(int kezd){
bejar[kezd] = 1;
for(int x : csucsok[kezd]){
if(bejar[x] == 1){
jo = false;
} else if(bejar[x] == 0){
dfs(x);
}
}
bejar[kezd] = 2;
}
int main()
{
cin >> n >> m;
vector<int> beDB(n + 1, 0);
csucsok.assign(n + 1, vector<int>(0, 0));
for(int i = 0; i < m; i++){
int a, b;
cin >> a >> b;
csucsok[a].push_back(b);
beDB[b]++;
}
bejar.assign(n, 0);
for(int i = 0; i < n; i++){
if(bejar[i] == 0){
dfs(i);
}
}
if(!jo){
cout << "0\n";
return 0;
}
queue<int> kezdok;
for(int i = 1; i <= n; i++){
if(beDB[i] == 0){
kezdok.push(i);
}
}
vector<int> topi;
while(!kezdok.empty()){
int akt = kezdok.front();
kezdok.pop();
for(int x : csucsok[akt]){
beDB[x]--;
if(beDB[x] == 0){
kezdok.push(x);
}
}
topi.push_back(akt);
}
bool jo = true;
int rosszind = 0;
for(int i = 0; i < n-1; i++){
bool talal = false;
for(int x : csucsok[topi[i]]){
if(x == topi[i + 1]){
talal = true;
break;
}
}
if(!talal){
jo = false;
rosszind = i;
break;
}
}
if(jo){
cout << "1\n";
for(int x : topi){
cout << x << " ";
}
cout << "\n";
} else{
cout << "2\n";
for(int i = 0; i < n; i++){
cout << topi[i] << " ";
}
cout << "\n";
for(int i = 0; i < n; i++){
if(i == rosszind){
cout << topi[i + 1] << " ";
} else if(i == rosszind + 1){
cout << topi[i - 1] << " ";
} else{
cout << topi[i] << " ";
}
}
cout << "\n";
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1812 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2004 KiB | |||
3 | Elfogadva | 0/0 | 197ms | 14776 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2436 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2640 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2980 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 2944 KiB | |||
8 | Elfogadva | 1/1 | 2ms | 2948 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3096 KiB | |||
10 | Elfogadva | 3/3 | 4ms | 3076 KiB | |||
11 | Elfogadva | 3/3 | 4ms | 3220 KiB | |||
12 | Elfogadva | 1/1 | 4ms | 3248 KiB | |||
13 | Elfogadva | 2/2 | 4ms | 3264 KiB | |||
14 | Elfogadva | 3/3 | 4ms | 3456 KiB | |||
15 | Elfogadva | 1/1 | 172ms | 11492 KiB | |||
16 | Elfogadva | 3/3 | 167ms | 20980 KiB | |||
17 | Elfogadva | 5/5 | 61ms | 19672 KiB | |||
18 | Elfogadva | 1/1 | 226ms | 26584 KiB | |||
19 | Elfogadva | 2/2 | 158ms | 12068 KiB | |||
20 | Elfogadva | 3/3 | 197ms | 31364 KiB | |||
21 | Elfogadva | 4/4 | 264ms | 37528 KiB | |||
22 | Elfogadva | 4/4 | 239ms | 33992 KiB |