Advertisement
Alexvans

Untitled

Jun 15th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5.     ios_base::sync_with_stdio(0);
  6.     cin.tie(0);
  7.  
  8.     int nodos, vertices, u, v, band = 0;
  9.     cin >> nodos >> vertices;
  10.  
  11.     int entrantes[nodos];
  12.     vector<vector<int> > G(nodos);
  13.     memset(entrantes, 0, sizeof(entrantes));
  14.  
  15.     pair <int, int> in[nodos];
  16.  
  17.     for(int i = 0; i < nodos; i++) cin >> in[i].first >> in[i].second;
  18.     sort(in, in+nodos);
  19.     for(int i=0; i<nodos; i++) {
  20.         entrantes[in[i].second]++;
  21.         G[in[i].first].push_back(in[i].second);
  22.     }
  23.     //sort(entrantes, entrantes + nodos);
  24.     //sort(G, G + nodos);
  25.  
  26.     queue<int> q;
  27.  
  28.     for(int i=0; i<nodos; i++) {
  29.         if(entrantes[i] == 0)
  30.             q.push(i);
  31.     }
  32.  
  33.     while(!q.empty()) {
  34.         int u = q.front();
  35.         q.pop();
  36.  
  37.         cout << u << ' ';band=1;
  38.  
  39.         for(int i=0; i<G[u].size(); i++) {
  40.             int v = G[u][i];
  41.             entrantes[v]--;
  42.             if(entrantes[v] == 0) {
  43.                 q.push(v);
  44.             }
  45.         }
  46.     }
  47.     if(band == 0)
  48.         cout << -1;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement