Cod sursa(job #2556862)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 25 februarie 2020 11:31:24
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

int k, n, m, a, b, i;
int sol[50005];

bitset <50005> f, f2;

vector <int> L[50005];

void dfs (int nod){
    int vecin, i;
    f2[nod] = 1;
    for (i=0; i<L[nod].size(); i++){
        vecin = L[nod][i];
        if (f2[vecin] == 0){
            dfs (vecin);
        }
    }
    sol[++k] = nod;
}

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