Pagini recente » Cod sursa (job #770610) | Cod sursa (job #500122) | Cod sursa (job #837910) | Cod sursa (job #180454) | Cod sursa (job #651323)
Cod sursa(job #651323)
#include<stdio.h>
#define NRNOD 100005
typedef struct Nod
{
int info;
struct Nod *next;
} Nod;
Nod *G[NRNOD];
int vizitat[NRNOD],n,m,k,srt[NRNOD];
void dfs(int x)
{
Nod *p;
vizitat[x]=1;
for(p=G[x];p;p=p->next)
if(!vizitat[p->info]) dfs(p->info);
srt[++k]=x;
}
int main()
{
FILE *intrare,*iesire;
int i,x,y;
intrare=fopen("sortaret.in","r");
iesire=fopen("sortaret.out","w");
fscanf(intrare,"%d %d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(intrare,"%d %d",&x,&y);
Nod *p;
if(!(p=(Nod*)malloc(sizeof(Nod)))) return 1;
p->info=y;
p->next=G[x];
G[x]=p;
}
for(i=1;i<=n;i++) if(vizitat[i]==0) dfs(i);
for(i=n;i>=1;i--) fprintf(iesire,"%d ",srt[i]);
fclose(intrare);fclose(iesire);
return 0;
}