Cod sursa(job #508820)

Utilizator paul992Cirstean Paul paul992 Data 9 decembrie 2010 18:34:55
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
#include<algo.h>
#include<vector>
#include<list>
#define pb push_back
#define max 50005
using namespace std;
vector<int> a[max];
list<int> l;

int n,m,viz[max];

void dfs(int x)
{vector<int>::iterator it;
viz[x]=1;

for(it=a[x].begin();it!=a[x].end();it++)
	if(!viz[*it])dfs(*it);
l.push_front(x);

}



int main()
{freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int x,y;
scanf("%d %d",&n,&m);

for(int i=1;i<=m;i++)
{scanf("%d %d",&x,&y);
a[x].pb(y);}

for(int i=1;i<=n;++i)
	if(viz[i]==0)
		dfs(i);

for(list<int>::iterator it=l.begin();it!=l.end();it++)
	printf("%d ",*it);

	
return 0;}