Cod sursa(job #864117)

Utilizator cr4zym4nAdrian Necula cr4zym4n Data 24 ianuarie 2013 18:04:45
Problema Sortare topologica Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,a,b,u;
vector<int> x[50010];
vector<int>:: iterator it;
short c[50010],d[50010];
int main(){
	
	f>>n>>m;
	for(int i=1;i<=m;++i){
		f>>a>>b;
		x[a].push_back(b);
		d[b]++;
	}
	for(int i=1;i<=n;++i)
		if(d[i]==0){
			c[++u]=i;
		}
	for(int i=1;i<=n;++i){
		a=c[i];
		for(it=x[a].begin();it!=x[a].end();++it){
			d[*it]--;
			if(d[*it]==0) c[++u]=*it;
		}
			
	}
	for(int i=1;i<=n;++i)
		g<<c[i]<<' ';
	g<<'\n';
	g.close();
	return 0;
}