Pagini recente » Monitorul de evaluare | Cod sursa (job #1308540) | Cod sursa (job #1594512) | Cod sursa (job #2331679) | Cod sursa (job #278544)
Cod sursa(job #278544)
#include<stdio.h>
#define Nmax 50010
int n,uz[Nmax];
struct nod
{
int info;
nod *urm;
};
typedef nod *Lista;
Lista L[Nmax];
inline void Insert(int x,int y)
{
Lista q=new nod;
q->info=y;
q->urm=L[x];
L[x]=q;
}
void DFS(int x)
{
uz[x]=1;
for(Lista p=L[x];p;p=p->urm)
if(!uz[p->info]) DFS(p->info);
Insert(n+1,x);
}
int main()
{int m,x,y,i;
freopen("sortaret.in","rt",stdin);
freopen("sortaret.out","wt",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;++i) scanf("%d %d",&x,&y),Insert(x,y);
for(i=1;i<=n;++i)
if(!uz[i]) DFS(i);
for(Lista p=L[n+1];p;p=p->urm) printf("%d ",p->info);
return 0;
}