Cod sursa(job #2277493)

Utilizator maria15Maria Dinca maria15 Data 6 noiembrie 2018 13:07:22
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int n, m, i, a, b, f[50003], p, k, sol[50003], crt, g[50002];
vector<int> v[50004];

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

void dfs(int nod){
    g[nod] = 1;
    for(int j = 0;j<v[nod].size();j++){
        int crt = v[nod][j];
        if(g[crt] == 0)
            dfs(crt);
    }
    sol[++k] = nod;
}

int main(){
    fin>>n>>m;
    for(i=1;i<=m;i++){
        fin>>a>>b;
        v[a].push_back(b);
    }
    for(i=1;i<=n;i++)
        if(g[i] == 0){
            dfs(i);
        }
    for(int i = k;i>0;i--)
        fout<<sol[i]<<" ";
    return 0;
}