Cod sursa(job #409620)

Utilizator victor_bla_blaDumitrescu Victor victor_bla_bla Data 3 martie 2010 19:31:02
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
#include<vector>
#define NMAX 50003
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int>A[NMAX];
struct noduri{int n; int t2;} nod[NMAX];
int n,m,i,x,y,j,t,vz[NMAX];
vector<int>L;
void dfs(int);
int main()
{
	fin>>n>>m;
	for (i=1;i<=m;i++)
	{
		fin>>x>>y;
		A[x].push_back(y);
	}
	for (i=1;i<=n;i++)
		nod[i].n=i;
	t=1;
	for (i=1;i<=n;i++)
		if (!vz[i])
			dfs(i);
	for (i=L.size()-1;i>=0;i--)
		fout<<L[i]<<' ';
	
fout.close();
return 0;}
void dfs(int x)
{int i;
	vz[x]=1;
	for (i=0;i<A[x].size();i++)
		if (!vz[A[x][i]]) 
		{
			++t;
			dfs(A[x][i]);
		}
	++t; 
	nod[x].t2=t; 
	L.push_back(x); 
}