Cod sursa(job #2132658)
| Utilizator | Data | 15 februarie 2018 22:37:46 | |
|---|---|---|---|
| Problema | Sortare topologica | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector <int> sol, v[50005];
bool u[50005];
void dfs(int q){
u[q] = 1;
for (auto it: v[q]){
if (!u[it]) dfs(it);
}
sol.push_back(q);
}
int main(){
ifstream cin ("sortaret.in");
ofstream cout ("sortaret.out");
cin >> n >> m;
for (int i=1; i<=m; i++){
int x, y;
cin >> x >> y;
v[x].push_back(y);
}
for (int i=1; i<=n; i++){
if (!u[i]) dfs(i);
}
for (int i=sol.size()-1; i>=0; i--) cout << sol[i] << " ";
return 0;
}
