Cod sursa(job #864356)

Utilizator cosminnicaAruxandei Cosmin Andrei cosminnica Data 24 ianuarie 2013 21:16:41
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#include<vector>// STL
#define nmax 5002
using namespace std;
int n,m,d[nmax],q[nmax],a,b;
vector <int> G[nmax];
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int main()
{
	f>>n>>m;
	for(int i=1;i<=m;++i)
	{
		f>>a>>b;
		G[a].push_back(b);
		d[b]++;
	}
	for(int i=1;i<=n;++i)
		if(d[i]==0)
			q[++q[0]]=i;
		for(int i=1;i<=n;++i)
		{
			int x=q[i];
			vector <int> :: iterator it = G[x].begin();
			vector <int> :: iterator sf = G[i].end();
			for(;it!=sf;++it)
			{
				d[*it]--;
				if(d[*it]==0)
					q[++q[0]]=i;
			}
		}
		for(int i=1;i<=n;++i)
			g<<q[i]<<' ';
		g.close();
		return 0;
}