Cod sursa(job #3371061)

Utilizator ryuuAdrian Rusu ryuu Data 28 octombrie 2026 13:43:26
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>

std::ifstream input("sortaret.in");
std::ofstream output("sortaret.out");

const int NMAX = 50005;
std::vector<int> v[NMAX];
bool vizitat[NMAX];
std::vector<int> rezultat;

void dfs(int nod) {
    vizitat[nod] = true;
    for (int vecin : v[nod]) {
        if (!vizitat[vecin]) {
            dfs(vecin);
        }
    }
    rezultat.push_back(nod);
}

int main() {
    int n, m, x, y;
    input >> n >> m;
    for (int i = 1;i <= m ;++i) {
        input >> x >> y;
        v[x].push_back(y);
    }

    for (int i = 1;i <= n;++i) {
        if (!vizitat[i]) {
            dfs(i);
        }
    }

    reverse(rezultat.begin(), rezultat.end());

    for (int nod : rezultat) {
        output << nod << " ";
    }
    output << std::endl;
    
    return 0;
}