Cod sursa(job #2167321)

Utilizator berindeiChesa Matei berindei Data 13 martie 2018 21:07:22
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;
int const NMAX=50000;
ifstream in("sortaret.in");
ofstream out("sortaret.out");

vector<int> nodes[NMAX+10];
bitset<NMAX+10> viz;
deque<int> rez;

void dfs(int n){
    for (auto x: nodes[n])
        if (!viz[x])
            dfs(x);
    viz[n]=true;
    rez.push_front(n);
}

int main(){
    int n, m, n1, n2, i;
    in >> n >> m;
    for (i=1; i<=m; i++){
        in >> n1 >> n2;
        nodes[n1].push_back(n2);
    }
    for (i=1; i<=n; i++)
        if (!viz[i]) dfs(i);
    for (auto x: rez) out << x << ' ';
}