Cod sursa(job #1691718)

Utilizator david12345Rotari David david12345 Data 19 aprilie 2016 11:50:05
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
using namespace std;
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
int n,m,viz[500010];
struct nod{
     int info;
     nod* back;
 
};
nod* l,*v[50010];
void add(int i,int j){
	nod* c=new nod;
	c->info=j;
	c->back=v[i];
	v[i]=c;
}
void push(int no){
	nod* c=new nod;
	c->info=no;
	c->back=l;
	l=c;
}
void write(){
	for(nod* c=l;c!=NULL;c=c->back)
	      fo<<c->info<<" ";
}
void dfs(int no){
	viz[no]=1;
	for(nod* c=v[no];c!=NULL;c=c->back)
	  if(viz[c->info]==0)
	     	dfs(c->info);
	     	push(no);
}
int main(){
	int x,y;
	fi>>n>>m;
	for(int i=1;i<=m;i++){
		fi>>x>>y;
		add(x,y);
	}
	for(int i=1;i<=n;i++)
	   if(!viz[i]){
	   	dfs(i);
	   }
	   write();
	   return 0;
}