Submission #936042

#TimeUsernameProblemLanguageResultExecution timeMemory
936042RegulusNaboj (COCI22_naboj)C++17
110 / 110
134 ms24776 KiB
#include <bits/stdc++.h> #define IO ios::sync_with_stdio(false);cin.tie(0); #define debug(x) cerr << #x << " = " << (x) << ' ' #define bug(x) cerr << (x) << ' ' #define endl cerr << '\n' #define all(v) (v).begin(), (v).end() #define SZ(v) (ll)(v).size() #define lowbit(x) (x)&-(x) #define pb emplace_back #define F first #define S second using namespace std; using ll = long long; using pll = pair<ll, ll>; //#define TEST const int N = 2e5+5; int in[N]; vector<int> g[N]; vector<pll> ans; queue<int> Q; int main(void) { IO int n, i, m; cin >> n >> m; for (i=0; i < m; ++i) { int x, y; cin >> y >> x; g[x].pb(y), ++in[y]; } int cnt = n; for (i=1; i <= n; ++i) { if (!in[i]) Q.push(i); } while (!Q.empty()) { int x = Q.front(); Q.pop(); --cnt; ans.pb(x, 0); for (int v : g[x]) { --in[v]; if (!in[v]) Q.push(v); } } if (cnt > 0) cout << "-1\n"; else { cout << SZ(ans) << '\n'; reverse(all(ans)); for (auto p : ans) cout << p.F << ' ' << p.S << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...