Pagini recente » Cod sursa (job #1737318) | Cod sursa (job #2299034) | Cod sursa (job #585099) | Cod sursa (job #179445) | Cod sursa (job #182895)
Cod sursa(job #182895)
#include <stdio.h>
typedef struct nod
{
int x;
nod *a;
} *pnod;
pnod a[50000];
int coada[50000];
int viz[50000];
int viz2[50000];
void add(int x,int y)
{
pnod p=new nod;
p->a=a[x];
p->x=y;;
a[x]=p;
}
int main()
{
int u=0,u2,s,x,y,n,m,i;
FILE *in,*out;
pnod p;
in=fopen("sortaret.in","r");
out=fopen("sortaret.out","w");
fscanf(in,"%d%d",&n,&m);
for (i=1;i<=n;i++)
{
fscanf(in,"%d%d",&x,&y);
add(x,y);
viz[y]++;
}
for (i=1;i<=n;i++)
{
if (!viz[i])
{
u++;
coada[u]=i;
viz2[i]=1;
}
}
s=1;
while (u!=n)
{
u2=u;
for (i=s;i<=u2;i++)
{
p=a[coada[i]];
while (p)
{
if (!viz2[p->x])
{
u++;
coada[u]=p->x;
viz2[p->x]=1;
}
p=p->a;
}
}
s=u2+1;
}
for (i=1;i<=n;i++)
fprintf(out,"%d ",coada[i]);
fprintf(out,"\n");
fclose(in);
fclose(out);
return 0;
}