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