Submission #704871

#TimeUsernameProblemLanguageResultExecution timeMemory
704871browntoadNaboj (COCI22_naboj)C++14
110 / 110
478 ms18520 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define int ll #define FOR(i, a, b) for (int i=(a); i<(b); i++) #define REP(i, n) FOR(i, 0, n) #define REP1(i, n) FOR(i, 1, n+1) #define RREP(i, n) for (int i=(n)-1; i>=0; i--) #define pii pair<int, int> #define f first #define s second #define pb push_back #define ALL(x) (x).begin(), (x).end() #define SZ(x) (int)((x).size()) const ll maxn = 2e5+5; int n, m; vector<int> graph[maxn]; vector<int> in(maxn); vector<bool> occ(maxn); void inp(){ ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin>>n>>m; REP(i, m){ int u, v; cin>>u>>v; graph[u].pb(v); in[v]++; } } vector<pii> res; void solve(){ queue<int> qu; REP1(i, n){ if (in[i] == 0) qu.push(i); } vector<int> topo; while(qu.size()){ int x=qu.front(); qu.pop(); occ[x]=1; topo.pb(x); REP(i, SZ(graph[x])){ in[graph[x][i]]--; if (in[graph[x][i]] == 0){ qu.push(graph[x][i]); } } } bool gg=0; REP1(i, n){ if (occ[i] == 0){ gg=1; break; } } if (gg) { if (m==n-1) assert(0); cout<<-1<<endl; return; } assert(SZ(topo)==n); cout<<n<<endl; REP(i, n){ cout<<topo[i]<<' '<<0<<endl; } } signed main(){ inp(); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...