4756 | 2023. 03. 31 11:06:19 | Erik_Gepard | Testnevelés óra | cpp17 | Elfogadva 50/50 | 238ms | 38800 KiB |
#include <bits/stdc++.h>
using namespace std;
vector <int> Graf[200011];
vector<bool> bejart;
vector<int> ans;
int m, n;
int eleres[200011];
void dfs(int v) {
bejart[v] = true;
for (int u : Graf[v]) {
if (!bejart[u])
dfs(u);
}
ans.push_back(v);
}
void topological_sort() {
bejart.assign(n+1, false);
ans.clear();
for (int i = n; i > 0; i--) {
if (!bejart[i])
dfs(i);
}
reverse(ans.begin(), ans.end());
for(int i=0; i<ans.size(); i++) {
eleres[ans[i]]=i;
}
}
int main() {
cin>>n>>m;
for (int i=1; i<=m; i++) {
int a, b;
cin>>a>>b;
Graf[a].push_back(b);
}
topological_sort();
for(int i=1; i<=n; i++) {
for(int sz: Graf[i]) {
if(eleres[i]>eleres[sz]) {
cout<<0<<"\n";
return 0;
}
}
}
int csere=-1;
for(int i=1; i<n; i++){
int a=ans[i-1], b=ans[i], lehet=1;
for(int x : Graf[a]){
if(x==b){
lehet=0;
}
}
if(lehet){
csere=i-1;
}
}
if(csere==-1){
cout<<1<<"\n";
for (int i=0; i<ans.size(); i++) {
cout<<ans[i]<<" ";
}
}
else{
cout<<2<<"\n";
for (int i=0; i<ans.size(); i++) {
cout<<ans[i]<<" ";
}
cout<<"\n";
cerr<<csere;
for (int i=0; i<ans.size(); i++) {
if(i==csere){
cout<<ans[i+1];
}
else if(i==csere+1){
cout<<ans[i-1];
}
else{
cout<<ans[i];
}
cout<<" ";
}
cout<<"\n";
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 6ms | 11304 KiB | |||
2 | Elfogadva | 0/0 | 7ms | 11580 KiB | |||
3 | Elfogadva | 0/0 | 186ms | 18380 KiB | |||
4 | Elfogadva | 2/2 | 6ms | 11956 KiB | |||
5 | Elfogadva | 3/3 | 6ms | 12196 KiB | |||
6 | Elfogadva | 3/3 | 6ms | 12464 KiB | |||
7 | Elfogadva | 3/3 | 7ms | 12620 KiB | |||
8 | Elfogadva | 1/1 | 6ms | 12824 KiB | |||
9 | Elfogadva | 3/3 | 6ms | 13108 KiB | |||
10 | Elfogadva | 3/3 | 8ms | 13164 KiB | |||
11 | Elfogadva | 3/3 | 8ms | 13268 KiB | |||
12 | Elfogadva | 1/1 | 8ms | 13300 KiB | |||
13 | Elfogadva | 2/2 | 8ms | 13384 KiB | |||
14 | Elfogadva | 3/3 | 7ms | 13476 KiB | |||
15 | Elfogadva | 1/1 | 163ms | 18404 KiB | |||
16 | Elfogadva | 3/3 | 149ms | 23580 KiB | |||
17 | Elfogadva | 5/5 | 61ms | 16632 KiB | |||
18 | Elfogadva | 1/1 | 238ms | 24092 KiB | |||
19 | Elfogadva | 2/2 | 159ms | 18940 KiB | |||
20 | Elfogadva | 3/3 | 184ms | 33168 KiB | |||
21 | Elfogadva | 4/4 | 187ms | 32588 KiB | |||
22 | Elfogadva | 4/4 | 194ms | 38800 KiB |