Cod sursa(job #493237)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 17 octombrie 2010 16:53:45
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream.h>
#include<algorithm>
#include<vector.h>

#define pb push_back

vector<int> v[50005],sol;

int sw[50005],sw1[50005];

void deep (int k)
{
	sw[k]=1;
	
	vector<int>::iterator it;
	
	
	for (it=v[k].begin();it<v[k].end();++it)
		if (sw[*it]==0)
			deep(*it);
		
	sol.pb(k);

	
}

int main()
{
	int n,i,m,j,a,b;
	ifstream f ("sortaret.in");
	f>>n>>m;
	for (i=1;i<=m;++i)
	{
		f>>a>>b;
		v[a].pb(b);
		sw1[b]=1;
	}
	
	for (i=1;i<=n;++i)
		if (sw1[i]==0)
			deep(i);
		
	ofstream g("sortaret.out");
		
	for (i=sol.size()-1;i>=0;--i)
		g<<sol[i]<<' ';
	
	f.close();
	g.close();
	return 0;
}