Cod sursa(job #2666334)

Utilizator STEFAN-ZOTAZota Stefan-Daniel STEFAN-ZOTA Data 1 noiembrie 2020 15:39:05
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

int n, m, i, j;
deque<int> rez;
vector<int> v[50005];
vector<bool> viz(50005, false);

void dfs(int nod) {
    int p;

    if(!viz[nod]) {
        viz[nod] = true;
        for(p = 0; p < v[nod].size(); p++)
            if(!viz[v[nod][p]])
                dfs(v[nod][p]);
        rez.push_front(nod);
    }
}

int main() {
    ifstream f("sortaret.in");
    ofstream g("sortaret.out");

    f >> n >> m;
    while(m) {
        f >> i >> j;

        v[i].push_back(j);
        m--;
    }
    f.close();

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

    for(it = rez.begin(); it != rez.end(); it++)
        g << rez[it] << ' ';
    g << '\n';
    g.close();

    return 0;
}