Pagini recente » Istoria paginii utilizator/mirunastanescu711 | Cod sursa (job #2012097) | Cod sursa (job #2012158) | Istoria paginii utilizator/horia.vlad | Cod sursa (job #3232124)
// Folositi neovim pls
#include <bits/stdc++.h>
#include <vector>
using namespace std;
std::ifstream fin("sortaret.in");
std::ofstream fout("sortaret.out");
std::vector<int>beenThere , sortareTopologica;
std::vector<std::vector<int>>gf;
int n , m;
void dfs(int node){
beenThere[node] = 1;
for(const auto& nextNode : gf[node]){
if(!beenThere[nextNode]){
dfs(nextNode);
}
}
sortareTopologica.emplace_back(node);
}
int main(){
fin >> n >> m;
beenThere.resize(n + 1);
gf.resize(n + 1 , std::vector<int>(n + 1));
for(int i = 0 ; i < m ; ++i){
int x , y;
fin >> x >> y;
gf[x].push_back(y);
}
for(int i = 1 ; i <= n ; ++i){
if(!beenThere[i]){
dfs(i);
}
}
for(int i = n - 1 ; i >= 0 ; i--){
fout << sortareTopologica[i] << " ";
}
}