Cod sursa(job #365708)

Utilizator cipriancxFMI - gr143 Timofte Ciprian cipriancx Data 19 noiembrie 2009 18:42:08
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<iostream>
using namespace std;

class nod
{
public:
	int nr;
	nod *urm;
	
	nod(void):nr(0),urm(NULL){};
	
};
nod *noduri[50001]; 
int folosit[50001],n,m;
nod *lista;

void pune(int i)
{
		nod *r=new nod;
	r->nr=i;
	r->urm=lista;
	lista=r;
	
	
	
	
	
}

void df(int i)
{
	if(folosit[i]==0)
	{ 
		nod *p=new nod;
		p=noduri[i];
		
		for(;p;p=p->urm)
		{
			
			
			if(folosit[p->nr]==0)df(p->nr);
		}
	folosit[i]=1;	
	pune(i);
	
	}
			
	
	
}







int main(void)
{
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);
	

cin>>n>>m;

int i,x,y;

for(i=1; i<=m; i++)
{
	cin>>x>>y;
	
	nod *p=new nod;
	p->nr=y;
	p->urm=noduri[x];
	noduri[x]=p;
	
}


for(i=1; i<=n; i++)
{
	if(folosit[i]==0)df(i);
}

nod *p=new nod;
p=lista;

for(;p;p=p->urm)cout<<p->nr<<" ";


	return 0;
}