Cod sursa(job #723628)

Utilizator hunter_ionutzzzFarcas Ionut hunter_ionutzzz Data 25 martie 2012 18:18:39
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
#define lung 50001
vector <int> v[lung];
vector <int>::iterator it;
int i,n,m,cd[lung],a,b,grad[lung],sc,ic;
int main()
{   fin >> n >> m;
    for (i=1;i<=m;++i)
	{   fin >> a >> b;
	    v[a].push_back(b);
		++grad[b];
	}
	for (i=1;i<=n;++i)
		if (!grad[i])
			cd[++sc] = i;
	while (ic <= sc)
	{   ++ic;
    	for (it=v[ic].begin();it!=v[ic].end();++it)
		{	--grad[*it];
			if (!grad[*it])
				cd[++sc] = *it;
		}
	}
	for (i=1;i<=n;++i)
		fout << cd[i] << " ";
	return 0;
}