Cod sursa(job #3360439)

Utilizator nicoleta_iancuIancu Nicoleta nicoleta_iancu Data 13 iulie 2026 22:03:21
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb

#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<vector<int>>graph;
vector<int>sortTopologic;
vector<bool>sursa;
int pozCrt;
int n, m;
void DFS(int& nodCrt) {
    for (auto i : graph[nodCrt]) {
        DFS(i);
    }
    cout << pozCrt << endl;
    sortTopologic[pozCrt] = nodCrt;
    pozCrt--;
}
void findSource() {
    for (int i = 1; i <= n; ++i) {
        if (sursa[i]) {
            DFS(i);
        }
    }
}
int main()
{
    fin >> n >> m;
    sortTopologic.resize(n);
    sursa.resize(n + 1, true);
    graph.resize(n + 1);
    int u, v;
    for (int i = 0; i < m; ++i) {
        fin >> u >> v;
        sursa[v] = false;
        graph[u].push_back(v);
    }
    pozCrt = n - 1;
    findSource();
    for (int i = 0; i < n; ++i) {
        fout << sortTopologic[i] << " ";
    }
    return 0;
}
//=^..^=