Cod sursa(job #203038)

Utilizator free2infiltrateNezbeda Harald free2infiltrate Data 13 august 2008 09:13:58
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

struct NOD
       { int inf;
         NOD *urm;};

typedef struct NOD *Lista;

Lista A[50001];
int viz[50001],parc[50002],nr;

void DFS(int i)
{
     while (A[i]!=NULL)
     {
           if (!viz[i]) DFS(A[i]->inf);
           A[i] = A[i]->urm;
     }
parc[++nr] = i;
}

int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    
    int n,m,i,x;
    Lista urm;
    
    scanf("%d%d",&n,&m);
    
    for (i=1;i<=m;i++)
    {
        urm = new NOD;
        scanf("%d%d",&x,&urm->inf);
        urm->urm = A[x];
        A[x] = urm;
    }
    
    for (i=1;i<=n;i++)
    if (!viz[i]) DFS(i);
 
    for (;n;n--) printf("%d ",parc[n]);   
}