Cod sursa(job #602088)

Utilizator ELHoriaHoria Cretescu ELHoria Data 9 iulie 2011 00:03:38
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#include <vector>

using namespace std;

int n , m ;

vector<int> G[50002] , v;
bool A[50002];

void dfs(int node)
{
	A[node] = 1;
	for(int i=0;i<(int)G[node].size();++i)
		if(!A[G[node][i]])  dfs(G[node][i]);

	v.push_back(node);
}

int main()
{
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);
	scanf("%d %d",&n,&m);
	for(int i=0,x,y;i<m;++i)
		scanf("%d %d",&x,&y) , G[x].push_back(y);

	for(int i=1;i<=n;++i)
		if(!A[i]) dfs(i);

	for(int i=n-1;i>=0;--i) 
		printf("%d ",v[i]);
	return 0;
}