Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- int nodos, vertices, u, v, band = 0;
- cin >> nodos >> vertices;
- int entrantes[nodos];
- vector<vector<int> > G(nodos);
- memset(entrantes, 0, sizeof(entrantes));
- pair <int, int> in[nodos];
- for(int i = 0; i < nodos; i++) cin >> in[i].first >> in[i].second;
- sort(in, in+nodos);
- for(int i=0; i<nodos; i++) {
- entrantes[in[i].second]++;
- G[in[i].first].push_back(in[i].second);
- }
- //sort(entrantes, entrantes + nodos);
- //sort(G, G + nodos);
- queue<int> q;
- for(int i=0; i<nodos; i++) {
- if(entrantes[i] == 0)
- q.push(i);
- }
- while(!q.empty()) {
- int u = q.front();
- q.pop();
- cout << u << ' ';band=1;
- for(int i=0; i<G[u].size(); i++) {
- int v = G[u][i];
- entrantes[v]--;
- if(entrantes[v] == 0) {
- q.push(v);
- }
- }
- }
- if(band == 0)
- cout << -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement