Pagini recente » Cod sursa (job #905135) | Cod sursa (job #2570011) | Cod sursa (job #372547) | Cod sursa (job #958309) | Cod sursa (job #2200793)
#include <stdio.h>
struct lista
{
int i;
lista *urm;
};
lista* v[50001],*crt;
int k,s[50001],vizitat[50001];
void sortare(int i)
{
lista *crt=v[i];
while(crt!=NULL)
{
if(vizitat[crt->i]==0)
sortare(crt->i);
crt=crt->urm;
}
s[k]=i;
k--;
vizitat[i]=1;
}
int main()
{
int i,j,n,m,x,y;
FILE *f,*g;
f=fopen("sortaret.in","r");
g=fopen("sortaret.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
crt=new(lista);
crt->i=y; crt->urm=v[x];v[x]=crt;
}
k=n;
for(i=1;i<=n;i++)
if(vizitat[i]!=1)
sortare(i);
for(i=1;i<=n;i++)
{
fprintf(g,"%d ",s[i]);
}
fclose(f);
fclose(g);
}