Cod sursa(job #602087)

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

using namespace std;

int n , m ;

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

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;
}