Cod sursa(job #1626212)

Utilizator viuscenkoViktor Iuscenko viuscenko Data 2 martie 2016 23:33:56
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

#define pub push_back

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

const int N_MAX = 5e4+1;

int n, m, x, y;
vector<int> vec[N_MAX];
vector<int> sol;
bool viz[N_MAX];

void sortaret(int nod) {
    if(viz[nod])
        return;

    sol.pub(nod);
    viz[nod] = 1;
    for(auto v: vec[nod]) {
        sortaret(v);
    }
}

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

    for(int i = 0; i < m; ++i)
        fin >> x >> y,
        vec[x].pub(y);

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

    for(auto s : sol)
        fout << s << " ";
}