Cod sursa(job #343279)

Utilizator bog29Antohi Bogdan bog29 Data 25 august 2009 13:35:58
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
#include<vector>
#define dmax 50003
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n,m,po[dmax],crt,viz[dmax];
vector<int>g[dmax];
int dfs(int k)
{	vector<int>::iterator it;
	viz[k]=1;
	for(it=g[k].begin();it<g[k].end();it++)
		if(viz[*it]==0)
			dfs(*it);
	crt++;
	po[crt]=k;	
}
int main()
{	int i,a,b;
	in>>n>>m;
	for(i=1;i<=m;i++)
	{	in>>a>>b;	
		g[a].push_back(b);
	}
	in.close();
	for(i=1;i<=n;i++)
		if(viz[i]==0)
			dfs(i);
	for(i=n;i>0;i--)
		out<<po[i]<<" ";
	out.close();
	return 0;
}