Cod sursa(job #1626218)

Utilizator viuscenkoViktor Iuscenko viuscenko Data 2 martie 2016 23:36:20
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 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;

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

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 it = sol.rbegin(); it != sol.rend(); it++)
        fout << *it << " ";
}