Pagini recente » Cod sursa (job #2909441) | Cod sursa (job #1212500) | Cod sursa (job #2806222) | Cod sursa (job #2432202) | Cod sursa (job #651207)
Cod sursa(job #651207)
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define max 60000
typedef struct node
{int info;
struct node *next;}node;
int n,m,v[max],s[max],k;
FILE *fin;
FILE *fout;
node *list[max];
node *nod;
void add(int x,int y)
{node *nod;
nod=(node *)malloc(sizeof(node));
nod->info=x;
nod->next=list[y];
list[y]=nod;
}
void init()
{int index,x,y;
fscanf(fin,"%d",&n);
fscanf(fin,"%d",&m);
for(index=1;index<=m;index++)
{ fscanf(fin,"%d",&x);
fscanf(fin,"%d",&y);
add(y,x);}
}
void df(int index)
{node *nod=list[index];
v[index]=1;
while(nod)
{ if(v[nod->info]==0)
df(nod->info);
nod=nod->next;}
s[++k]=index;}
int main()
{int index;
fin=fopen("sortaret.in","r");
fout=fopen("sortaret.out","w");
init();
for(index=1;index<=n;index++)
if(v[index]==0)
df(index);
for(index=n;index>=1;index--)
fprintf(fout,"%d",s[index]);
fclose(fin);fclose(fout);
free(nod);
return 0;}