Cod sursa(job #507862)

Utilizator siminescuPaval Cristi Onisim siminescu Data 6 decembrie 2010 23:13:19
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
#include<vector>
using namespace std;

# define nmax 50001
vector <int> nod[nmax];
bool viz[nmax];
int l[nmax],n,m;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

void Read()
{
	f>>n>>m;
	int i,x,y;
	for(i=1;i<=m;i++)
	{
		f>>x>>y;
		nod[x].push_back(y);
	}
	for(i=1;i<=n;i++)
		l[i]=nod[i].size();
}
void SortTopologic(int x)
{
	viz[x]=1;int k;
	g<<x<<" ";
	for(k=0;k<l[x];k++)
		if(!viz[nod[x][k]])
			SortTopologic(nod[x][k]);
}
int main()
{
	Read();
	int i;
	for(i=1;i<=n;i++)
		if(!viz[i])
			SortTopologic(i);
}