Cod sursa(job #1764047)

Utilizator AhileGigel Frone Ahile Data 24 septembrie 2016 22:18:31
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<bits/stdc++.h>
using namespace std;
#define in f
#define out g


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


int n;
int m;
int x;
int y;
vector <int> stl[100010];
int viz[100010];
vector <int> sol;

int dfs(int node) {

    viz[node] = true;
    for(int i = 0; i < stl[node].size(); i++) {
        if(viz[stl[node][i]] == false) {
            dfs(stl[node][i]);
        }
    }
    sol.push_back(node);
}


int main() {

    in >> n;
    in >> m;
    for(int i = 1; i <= m; i++) {
        in >> x;
        in >> y;
        stl[x].push_back(y);
    }

    for(int i = 1; i <= n; i++) {
        if(viz[i] == 0)
            dfs(i);
    }
    for(int i = n - 1; i >= 0; i--) {
        out << sol[i] << " ";
    }
    return 0;
}