Cod sursa(job #525246)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 24 ianuarie 2011 17:57:50
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <vector>

using namespace std;

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

vector<int>a[1<<17];
int n;
bool viz[1<<17]={0};
int rez[1<<17],k=0;

void citire(){
	int x,y,m;
	in>>n>>m;
	while(m--){
		in>>x>>y;
		a[x].push_back(y);
	}
}

void dfs(int x){
	int i,y;
	viz[x]=true;
	for(i=0;i<a[x].size();i++){
		y=a[x][i];
		if(viz[y]==true){
			continue;
		}
		else{
			dfs(y);
		}
	}
	rez[++k]=x;
}
	

int main(){
	int i;
	citire();
	for(i=1;i<=n;i++){
		if(viz[i]==false){
			dfs(i);
		}
	}
	for(i=k;i>0;i--){
		out<<rez[i]<<" ";
	}
	return 0;
}