Cod sursa(job #802414)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 26 octombrie 2012 17:34:21
Problema Sortare topologica Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>
#include<vector>
#define NMAX 50000
#define pb push_back
using namespace std;
vector<int>l[NMAX];
int stop[NMAX],k;
bool viz[NMAX];
void dfs_sort(int u)
{
    int v=0,i;
    viz[u]=1;
    for (i=0;i<l[u].size();++i)
    {
        v=l[u][i];
        if (viz[v]==0)
            dfs_sort(v);
    }
    stop[++k]=u;
}
int main()
{
    long n,m,x,y,i;
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%ld %ld",&n,&m);
    for (i=1;i<=m;i++)
    {
        scanf("%ld %ld",&x,&y);
        l[x].pb(y);
    }
    for (i=1;i<=n;i++)
        if (viz[i]==0)
            dfs_sort(i);
    for (i=k;i>=1;--i)
        printf("%d ",stop[i]);
}