Cod sursa(job #426583)

Utilizator undogSavu Victor Gabriel undog Data 27 martie 2010 10:55:44
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

struct list{
	int index;
	list* next;
};

list* v[50005];
bool visited[50005];

list* l;

void visit(int x){
	if(visited[x])
		return;
	else{
		visited[x]=true;
		list *t;
		for(t=v[x];t;t=t->next)
			visit(t->index);
		t=new list;
		t->index=x;
		t->next=l;
		l=t;
		
	}
}

int main(){
	ifstream in("sortaret.in");
	ofstream out("sortaret.out");
	
	int n,m;
	
	in>>n>>m;
	
	int a,b,i;
	list* tmp;
	
	for(i=0;i<m;i++){
		in>>a>>b;
		tmp=new list;
		tmp->index=b;
		tmp->next=v[a];
		v[a]=tmp;
	}
	for(i=1;i<=n;i++)
		visit(i);
		
	for(tmp=l;tmp;tmp=tmp->next)
		out<<tmp->index<<' ';
	out<<'\n';
	
	return 0;
}