Cod sursa(job #536146)

Utilizator tinkyAndrei Ilisei tinky Data 18 februarie 2011 12:27:21
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<vector>
using namespace std;
int sol[50001],viz[50001],a=0,m,n;
vector<int>v[50001];
/*V[i].push_back(x);
for(i=0;i<(int)V[j].size();i++)
	v[j][i]!=alfa;
*/
void citire()
{
	int i,x,y;
	ifstream in("sortaret.in");
	in>>n>>m;
	for (i=1;i<=m;i++)
	{
		in>>x>>y;
		v[x].push_back(y);
	}
}
void dfs(int x)
{
	int i;
	viz[x]=1;
	for (i=0;i<(int)v[x].size();i++)
		if (!viz[v[x][i]])
			dfs(v[x][i]);
	sol[++a]=x;
}
void rez()
{
	int i;
	ofstream out("sortaret.out");
	for (i=n;i>0;i--)
		out<<sol[i]<<" ";
}
int main()
{
	int i;
	citire();
	for (i=1;i<=n;i++)
		if (!viz[i])
			dfs(i);
	rez();
	
}