Cod sursa(job #2461820)

Utilizator Briana_NeaguNeagu Briana Briana_Neagu Data 26 septembrie 2019 10:43:02
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#define maxi 50005

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

int grad[maxi];
vector <int> vec[maxi];
queue <int> coada;

int main()
{
  int n, m;
  f >> n >> m;
  while (m --)
  {
      int x, y;
      f >> x >> y;
      vec[x].push_back(y);
      grad[y] ++;
  }
  for (int nod = 1; nod <= n; ++ nod)
      if (grad[nod] == 0)
      {
          g << nod << " ";
          coada.push(nod);
      }

  while (!coada.empty())
  {
      int nod = coada.front();
      coada.pop();
      for (auto next : vec[nod])
      {
          grad[next] --;
          if (grad[next] == 0)
          {
              g << next << " ";
              coada.push(next);
          }
      }
  }
}