Pagini recente » Istoria paginii runda/hc_round_9/clasament | Cod sursa (job #403043) | Istoria paginii runda/simulare_oji2012_clasele_11-12/clasament | Istoria paginii runda/concurs_000003 | Cod sursa (job #1764047)
#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;
}