Cod sursa(job #554684)

Utilizator CipaFlorescu Ciprian Cipa Data 15 martie 2011 02:59:00
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#include <vector>
using namespace std;

vector<int> l;
vector<bool> s;
vector<vector<int> > a;
int n,m;

void visit(int i)
{
	s[i] = 0;
	for(int j=0;j<a[i].size();++j)
		visit(a[i][j]);
	l.push_back(i);
}

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