Cod sursa(job #502379)

Utilizator The_DisturbedBungiu Alexandru The_Disturbed Data 19 noiembrie 2010 10:32:12
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
#include<vector.h>
#include<algorithm>
using namespace std;
vector<int>v[50000],c;
vector<int>::iterator it;
int m,n,i,j,x,y;
bool s[50000];
void dfs(int x)
{
	vector<int>::iterator it;
	s[x]=1;
	for(it=v[x].begin();it!=v[x].end();it++) if(!s[*it])dfs(*it);
	c.push_back(x);
}
int main()
{
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&x,&y);
		v[x].push_back(y);
	}
	memset(s,false,sizeof(s));
	for(i=1;i<=n;i++)if(!s[i])dfs(i);
	reverse(c.begin(),c.end());
	for(it=c.begin();it!=c.end();it++)printf("%d ",*it);
	return 0;
}