Pagini recente » Borderou de evaluare (job #1134103) | Cod sursa (job #2975023) | Cod sursa (job #2939023) | Cod sursa (job #300179)
Cod sursa(job #300179)
#include<stdio.h>
#define max 50005
struct nod
{
int info;
nod *urm;
} *g[max] , *sol;
long n, m, i, j;
int use[max];
void adauga(int i, int j)
{
nod *p;
p = new nod; p->info = j;
p->urm = g[i]; g[i] = p;
}
void df(int nd)
{
nod *p;
use[nd] = 1;
for(p = g[nd] ; p != NULL ; p = p->urm)
{
if(use[p->info] == 0)
df(p->info);
p = p->urm;
}
p = new nod;
p->info = nd;
p->urm = sol;
sol = p;
}
int main()
{
freopen("sortaret.in" , "r" , stdin);
freopen("sortaret.out" , "w" , stdout);
scanf("%ld%ld" , &n , &m);
for(i = 1 ; i <= m ; i++)
{
scanf("%ld%ld", &i, &j);
adauga(i, j);
}
for(i = 1 ; i <= n ; i++)
if(!use[i])
df(i);
while(sol)
{
printf("%d ", sol->info);
sol = sol->urm;
}
fclose(stdin);
fclose(stdout);
return 0;
}