Cod sursa(job #365663)

Utilizator cipriancxFMI - gr143 Timofte Ciprian cipriancx Data 19 noiembrie 2009 16:08:50
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 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 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);
		}
	}
			
	nod *r=new nod;
	r->nr=i;
	r->urm=lista;
	lista=r;
	folosit[i]=1;
	
}





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[i];
	noduri[i]=p;
	
}
	
for(i=1; i<=n; i++)
{
	if(folosit[i]==0)df(i);
}

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



	return 0;
}