Submission #660256

#TimeUsernameProblemLanguageResultExecution timeMemory
660256berrNaboj (COCI22_naboj)C++17
0 / 110
250 ms29840 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N=2e5+37; vector<int> adj[N], radj[N], siz(N), vis(N); int flag=1; void dfs(int x, int y) { vis[x]=1; for(auto i: adj[x]) { if(i==y) continue; if(vis[i]==1) flag=0; else dfs(i, x); } vis[x]=2; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, m; cin>>n>>m; for(int i=0; i<m; i++) { int x, y; cin>>x>>y; adj[x].push_back(y); radj[y].push_back(x); siz[x]++; } queue<int> q; for(int i=1; i<=n; i++) { if(!vis[i]) dfs(i, i); if(siz[i]==0) q.push(i); } if(!flag) { cout<<-1; return 0; } else { vector<array<int, 2>> ans; while(q.size()) { int x=q.front(); q.pop(); ans.push_back({x, 1}); for(auto i: radj[x]) { siz[i]--; if(siz[i]==0) q.push(i); } } for(auto i: ans) cout<<i[0]<<" "<<i[1]<<"\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...