Cod sursa(job #1886210)

Utilizator miha1000Dica Mihai miha1000 Data 20 februarie 2017 19:05:12
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
#define nmax 50005
int n, m, grad[nmax], v[nmax]; vector<int> G[nmax];

bool viz[nmax];

void dfs(int start){
    int it,nod;
    viz[start]=1;

    for(it=0;it<G[start].size();it++){
        nod=G[start][it];
        if(viz[nod]==0) dfs(nod);
    }
    m++;
    v[m]=start;
}


int main()
{
    ifstream f("sortaret.in");
    ofstream g("sortaret.out");
    f >> n >> m;
    int i,a,b;
    for(i=1;i<=m;i++){
        f >> a >> b;
        G[a].push_back(b);
    }
    m=0;
    for(i=1;i<=n;i++){
        if(!viz[i]) dfs(i);
    }
    for(i=n;i>=1;i--){
        g << v[i] << " ";

    }
}