Cod sursa(job #2755990)

Utilizator mihai.calitescuMihai-Gabriel Calitescu mihai.calitescu Data 28 mai 2021 22:33:53
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <vector>
#include <stack>
#include <fstream>

#define MAXN 50005

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

vector<int> adj[MAXN];
stack<int> s;
int visited[MAXN];


void dfs(int start) {
    visited[start] = 1;

    for (auto node : adj[start]) {
        if (!visited[node])
            dfs(node);
    }

    s.push(start);
}

int main() {

    int n, m;
    fin >> n >> m;

    for (int i = 1; i <= m; i++) {
        int s, e;
        fin >> s >> e;
        adj[s].push_back(e);
    }

    for (int i = 1; i <= n; i++)
        if (visited[i] == false)
            dfs(i);
    
    while (!s.empty()) {
        cout << s.top() << " ";
        s.pop();
    }
}