Cod sursa(job #655654)

Utilizator valentina506Moraru Valentina valentina506 Data 3 ianuarie 2012 11:00:21
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
int n,m,i,j,x,y,uz[50001];
vector<int> a[50001];
vector<int> b;

void df(int x)
{
	int i;
	uz[x]=1;
	for(i=0;i<a[x].size();++i)
		if(!uz[a[x][i]])
			df(a[x][i]);
				b.push_back(x);

}

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);
		a[x].push_back(y);
	}
	
	for(i=1;i<=n;++i)
		if(!uz[i])
			df(i);
		
		for(i=b.size()-1;i>=0;--i)
			printf("%d ",b[i]);
		
		return 0;
}