Pagini recente » Cod sursa (job #1229509) | Borderou de evaluare (job #377341) | Cod sursa (job #1263837) | Cod sursa (job #2431278) | Cod sursa (job #144717)
Cod sursa(job #144717)
#include<stdio.h>
FILE*f=fopen("sortaret.in","r");
FILE*g=fopen("sortaret.out","w");
int post[50003],p;
short viz[50002];
typedef struct NOD
{
int info;
NOD *urm;
}Nod;
Nod *prim[50001];
int n,m;
void read()
{
fscanf(f,"%d %d",&n,&m);
int x,y;
Nod *p;
while(m--)
{
fscanf(f,"%d %d",&x,&y);
//inserez informatia y in prim[x]
p=new Nod;
p->info=y;
if(prim[x]==NULL)
{
p->urm=NULL;
prim[x]=p;
}
else
{
p->urm=prim[x];
prim[x]=p;
}
}
}
void DF(int x)
{
Nod *q;
viz[x]=1;
for(q=prim[x];q;q=q->urm)
if(viz[q->info]==0) DF(q->info);
post[++p]=x;
}
int main()
{
read();
int i;
for(i=1;i<=n;++i) if(viz[i]==0) DF(i);
for(i=p;i>0;--i) fprintf(g,"%d ",post[i]);
return 0;
}