Cod sursa(job #447686)

Utilizator lakat_tLakatos Tamas lakat_t Data 30 aprilie 2010 14:01:37
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>

int db,n,m,x,y,v[5000][5000],w[5000];
int latott[50000];

int topo(int cs)
{
    latott[cs]=1;
    for(int i=1;i<=n;i++)
        if(v[cs][i]&&latott[i]==0)
            topo(i);
    w[db]=cs;
    db--;	    
    return 0;
}

int main()
{

    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);

    scanf("%d %d\n",&n,&m);
    db=n;
    for(int i=1;i<=m;i++);
    {
        scanf("%d %d\n",&x,&y);
        v[x][y]=1;
    }
    for(int i=1;i<=n;i++)
        if(latott[i]=0) topo(i);
    for(int i=1;i<=n;i++)
	printf("%d ",w[i]);	
    return 0;
}