Cod sursa(job #3353763)

Utilizator domdiridomdidomDominik domdiridomdidom Data 11 mai 2026 09:36:07
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
#include <queue>

using std::vector;

std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");

int main() {
   int n, m;
   in >> n >> m;
   vector<vector<int>> graf(n);
   vector<int> nrDep(n, 0);
   
   while(m--) {
      int u, v;
      in >> u >> v;
      graf[--u].push_back(--v);
      nrDep[v]++;
   }
   
   std::queue<int> q;

   for(int i = 0; i < n; i++)
      if(nrDep[i] == 0)
         q.push(i);

   for(int i = 0; i < n; i++) {
      int next = q.front();
      q.pop();

      for(const auto & e : graf[next])
         if(--nrDep[e] == 0)
            q.push(e);

      out << next << ' ';
   }
}