Cod sursa(job #1846518)

Utilizator georgemihaiGeorge Mihai georgemihai Data 13 ianuarie 2017 09:18:52
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<iostream>
#include<vector>
#include<algorithm>
#include<fstream>
using namespace std;
int n,m,y,x,nr=0,z[100001];
ifstream in("sortaret.in");
ofstream out("sortaret.out");
bool st[100001];
vector < vector < int > > v(100001);
void dfs(int k)
{
    st[k]=1;
    int a=v[k].size();
    for(int i=0;i<a;i++)
      if(st[v[k][i]]==0)
        dfs(v[k][i]);
    z[++nr]=k;
}
int main()
{
   in>>n>>m;
   while(in>>x>>y)
   {
       v[x].push_back(y);
   }
   for(int i=1;i<=n;i++)
     if(st[i]==0)
       dfs(i);
   for(int i=n;i>=1;i--)
     out<<z[i]<<" ";
}