Cod sursa(job #387485)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 27 ianuarie 2010 19:38:21
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
#include<vector>
#define Nmax 50010
using namespace std;

vector<int> V[Nmax];
int i,n,m,x,y,viz[Nmax],Sol[Nmax],N;

void dfs(int nod)
{
	viz[nod]=1;
	vector<int>::iterator it;
	
	for(it=V[nod].begin();it!=V[nod].end();it++)
		if(!viz[*it]) dfs(*it);
	
	Sol[++N]=nod;
}

int main()
{
	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);
		
		V[x].push_back(y);
	}
	
	for(i=1;i<=n;i++)
		if(!viz[i]) dfs(i);
		
	for(i=n;i;i--)
		printf("%d ",Sol[i]);
	
	return 0;
}