Cod sursa(job #3317459)

Utilizator StefanL2005Stefan Leustean StefanL2005 Data 23 octombrie 2025 17:43:43
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

ifstream in ("sortare.in");
ofstream out ("sortare.out");

void DFS_TOP(int node, vector<vector<int>> &graf, vector<bool> &visited, vector<int> &top) {
    visited[node] = true;

    for (auto v : graf[node])
        if (visited[v] == false) {
            DFS_TOP(v, graf, visited, top);
        }

    top.push_back(node);
}

void DFS_CTC(int node, vector<vector<int>> &graf, vector<bool> &visited, vector<int> &CT) {

    visited[node] = true;
    CT.push_back(node + 1);

    for (auto v : graf[node])
        if (visited[v] == false) {
            DFS_CTC(v, graf, visited, CT);
        }
}



int main() {
    int n, m;
    in >> n >> m;

    vector<vector<int>> graf(n);
    vector<vector<int>> grafT(n);

    for (int i = 0; i < m; i++) {
        int x, y;
        in >> x >> y;
        x--; y--;

        graf[x].push_back(y);
        grafT[y].push_back(x);
    }

    vector<bool> visited(n, false);
    vector<int> top;

    for (int i = 0; i < n; i++)
        if (visited[i] == false)
            DFS_TOP(i, graf, visited, top);

    for (auto i : top)
        out << i << " ";

    return 0;
}