Cod sursa(job #2707954)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 18 februarie 2021 00:30:51
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

int n,m,grad[50005],coada[50005];
vector<int>vecini[50005];

int main()
{
 f>>n>>m;
 for(int i=1;i<=m;i++)
 {
  int x,y;
  f>>x>>y;
  vecini[x].push_back(y);
  grad[y]++;
 }

 for(int i=1;i<=n;i++)
  if(grad[i]==0) coada[++coada[0]]=i;;

 for(int i=1;i<=n;i++)
 {
  int x=coada[i];

  for(int j=0;j<vecini[x].size();j++)
  {
   int y=vecini[x][j];
   grad[y]--;
   if(grad[y]==0) coada[++coada[0]]=y;
  }
 }

 for(int i=1;i<=n;i++) g<<coada[i]<<' ';
}