제출 #782444

#제출 시각아이디문제언어결과실행 시간메모리
782444christinelynnNaboj (COCI22_naboj)C++17
110 / 110
306 ms19564 KiB
#include <bits/stdc++.h>
using namespace std;
 
# define int long long
# define fir first
# define sec second
# define pb push_back
 
const int cnst = 2e5+5;
bool mutipletestcase = 0;
//bool debug = false;
 
int x[cnst];
vector<int> vec[cnst];
 
void solve() {
    int n, m; cin >> n >> m;
 
    for(int i = 1; i<=m; i++) {
        int a, b; cin >> a >> b;
        vec[b].pb(a);
        x[a]++;
    }
 
    queue<int> q;
    int done = 0;
 
    for(int i = 1; i<=n; i++) {
        if(!x[i]) q.push(i), done++;
    }
 
    vector<pair<int, int>> ans;
 
    while(!q.empty()) {
        int a = q.front(); q.pop();
 
        for(auto v: vec[a]) {
            x[v]--;
            if(!x[v]) {
                q.push(v);
                ans.pb({v, 1});
                done++;
            }
        }
        if(done == n) break;
    }
 
    if(done == n) {
        cout << ans.size() << endl;
        for(auto v: ans) cout << v.fir << " " << v.sec << endl;
    }
    else cout << -1 << endl;
}
 
signed main() {
    ios_base::sync_with_stdio(false);
    int t = 1;
    if(mutipletestcase) cin >> t; 
    while(t--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...