Cod sursa(job #215401)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 18 octombrie 2008 16:19:41
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<stdio.h>
int n,m,i,x,y;
char viz[50001];
int lista[50001];
struct Nod {
    int d;
    Nod *next;
};

Nod *a[50001];
int df(int s)
{
    int nodurm;
    viz[s]=1;
    for(Nod *it=a[s];it!=NULL;it=it->next)
     {
    nodurm = it->d;
    if (!viz[nodurm])
      df(nodurm);
     }
    lista[++lista[0]] = s;
    return 0;
}
int insert(Nod *&k,int s)
{
    Nod *x = new Nod;
    x->d=s;
    x->next=k;
    k=x;
    return 0;
}

int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%d %d",&n,&m);
    for(i=1;i<=m;i++)
       {
            scanf("%d %d",&x,&y);
            insert(a[x],y);
       }
    df(1);
    for(i=lista[0];i>0;i--)
     printf("%d ",lista[i]);
    printf("\n");
    return 0;
}