Cod sursa(job #404266)

Utilizator SzabiVajda Szabolcs Szabi Data 25 februarie 2010 23:19:07
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#define MAX 50001


struct adat{
int x;
adat *next;
};

int n,m,l[MAX],ll=0;
adat *a[MAX];
bool lattam[MAX];


void add(int x,int y){
adat *p;
p=new adat;
p->x=y;
p->next=a[x];
a[x]=p;

}

void tsort(int x){

	if(!lattam[x]){
adat *p=a[x];
lattam[x]=1;
while(p!=0){
tsort(p->x);
p=p->next;
}

ll++;
l[ll]=x;
	}
}

int main(){
freopen("sortare.in","r",stdin);
freopen("sortare.out","w",stdout);
int i,temp1,temp2;
scanf("%d %d",&n,&m);

for(i=1;i<=n;i++){
scanf("%d %d",&temp1,&temp2);
add(temp2,temp1);

}

for(i=1;i<=n;i++)tsort(i);

for(i=1;i<=n;i++)printf("%d ",l[i]);

return 0;
}