Cod sursa(job #1898735)

Utilizator mihaiperjuMihai Perju mihaiperju Data 2 martie 2017 11:21:10
Problema Sortare topologica Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");


int **a,*viz,*postordine,n,m,nr;

void DFS(int x)
{
    viz[x]=1;
    for(int i=1;i<=n;i++)
        if(a[x][i]&&!viz[i])
            DFS(i);
    postordine[++nr]=x;
}

int main()
{
    fin>>n>>m;

    a=new int*[n+1];
    for(int i=1;i<=n;i++)
        a[i]=new int[n+1];

    postordine=new int[n+1];
    viz=new int[n+1];



    for(int i=1; i<=m; i++)
    {
        int b,c;
        fin>>b>>c;
        a[c][b]=1;
    }

    for(int i=1;i<=n;i++)
        if(!viz[i])
            DFS(i);

    for(int i=1;i<=n;i++)
        fout<<postordine[i]<<" ";


    return 0;
}