Cod sursa(job #372654)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 11 decembrie 2009 08:45:43
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> v[50009];
int viz[50009],x[50009],n,m;
void dfs(int p)
{
    int l,i;
    viz[p]=1;
    printf("%d ",p);
    l=v[p].size();
    for(i=0;i<l;i++)
    {
        x[v[p][i]]--;
        if(x[i]==0)
            dfs(v[p][i]);
    }
}
int main ()
{
    int v1,v2,i;
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=m;i++)
    {
        scanf("%d%d",&v1,&v2);
        v[v1].push_back(v2);
        x[v2]++;
    }
    for(i=1;i<=n;i++)
        if(x[i]==0 && viz[i]==0)
            dfs(i);
    printf("\n");
    return 0;
}