Cod sursa(job #3353759)

Utilizator domdiridomdidomDominik domdiridomdidom Data 11 mai 2026 09:31:35
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 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);

   vector<int> megoldas;

   for(int i = 0; i < n; i++) {
      int next = q.front();
      q.pop();
      for(const auto & e : graf[next]) {
         nrDep[e]--;
         if(nrDep[e] == 0) q.push(e);
      }
      megoldas.push_back(next);
   }

   for(const auto & e : megoldas)
      out << e + 1 << ' ';
}