Cod sursa(job #1522379)

Utilizator Corneliu10Dumitru Corneliu Corneliu10 Data 11 noiembrie 2015 17:16:02
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <vector>
#define inFile "sortaret.in"
#define outFile "sortaret.out"
#define Nmax 50010
using namespace std;

vector <int> G[Nmax];

int sp[Nmax],lp,viz[Nmax];

int DFS(int k)
{
    int i,ls = G[k].size();

    viz[k] = 1;
    for(i = 0;i < ls; i++)
        DFS(G[k][i]);

    sp[lp++] = k;
}

int main()
{
    int i,n,m,a,b;
    freopen(inFile,"r",stdin);
    freopen(outFile,"w",stdout);

    scanf("%d%d",&n,&m);
    for(i=0;i<m;i++)
    {
        scanf("%d%d",&a,&b);
        G[a].push_back(b);
    }

    for(i=1;i<=n;i++)
        if(!viz[i]) DFS(i);
    for(i=lp - 1;i>=0;i--)
        printf("%d ", sp[i]);
}