Cod sursa(job #545900)

Utilizator andreirulzzzUPB-Hulea-Ionescu-Roman andreirulzzz Data 4 martie 2011 08:46:43
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
#include <vector>
using namespace std;

int x,y,viz[50001],sol[50001],n,m;
vector <int> a[50001];

void df(int k);

int main(int k){
	int i;
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);
	
	scanf("%d%d",&n,&m);
	for(i=1;i<=m;++i) scanf("%d%d",&x,&y),a[x].push_back(y);
	
	for(i=1;i<=n;++i)
		if (viz[i]==0)
			df(i);
	
	for(i=sol[0];i>=1;--i)
		printf("%d ",sol[i]);
		
	return 0;
}

void df(int k){
	vector <int>::iterator i;
	if (viz[k]) return;
	viz[k]=1;
	for(i=a[k].begin();i!=a[k].end();++i)
		df(*i);
	sol[++sol[0]]=k;
}