Cod sursa(job #371960)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 7 decembrie 2009 22:28:17
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
#include<vector>
#define pb push_back
using namespace std;
int n,m,nr,viz[50002],sol[50002];
vector<int> v[50002];

void dfs(int x)
{
	int i,lim=v[x].size();
	viz[x]=1;
	for(i=0;i<lim;i++)
		if(!viz[v[x][i]])
			dfs(v[x][i]);
	sol[++nr]=x;
}

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