Cod sursa(job #1330548)

Utilizator sifushifMihaela Muraru sifushif Data 30 ianuarie 2015 19:31:53
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;


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

vector <int>  a[500001], rez;
bool flag[500001];
int m, n, x,y;


void dfs(int x)
{
	flag[x] = true;
	int j=0;
	while( j< a[x].size())
	{
		if(!flag[a[x][j]])
		{
			dfs(a[x][j]);
			flag[a[x][j]]=true;
		}
		j++;	
	}
	rez.push_back(x);
}
int main()
{
	f>>n>>m;
	for(int i=1; i<=m; i++)
	{
		f>>x>>y;
		a[x].push_back(y);
	}
	
	for (int i=1;i<=n;i++)
	{
        if (!flag[i])
			 dfs(i);
    }
    for(int i=n-1;i>=0;i--)
	{
        fout<<rez[i]<<" ";
	}
	
return 0;

}