Pagini recente » Cod sursa (job #2509666) | Clasament preONI 2007, Runda 4, Clasele 11-12 | Cod sursa (job #499397) | Cod sursa (job #2696676) | Cod sursa (job #2817503)
#include <bits/stdc++.h>
std::vector<int> edges[50000];
bool vis[50000];
std::vector<int> ret;
void
dfs (int node) {
vis[node] = true;
for (auto to: edges[node])
if (!vis[to])
dfs(to);
ret.emplace_back(node + 1);
}
int main () {
int n, m;
std::ifstream f("sortaret.in");
std::ofstream g("sortaret.out");
f >> n >> m;
for (int i = 0; i < m; ++ i) {
int de, la;
f >> de >> la;
-- de, -- la;
edges[de].emplace_back(la);
}
ret.reserve(n);
for (int i = 0; i < n; ++ i)
if (!vis[i])
dfs(i);
reverse(ret.begin(), ret.end());
for (auto v: ret)
g << v << ' ';
}