Pagini recente » Cod sursa (job #1032975) | Cod sursa (job #1698875) | Cod sursa (job #889663) | Cod sursa (job #27932) | Cod sursa (job #2786201)
#include <bits/stdc++.h>
std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");
constexpr int N = 5e4 + 1, M = 1e5 + 1;
std::vector<int> g[N];
// int pred[N];
// void bfs(std::queue<int> &q) {
// while (!q.empty()) {
// int u = q.front();
// q.pop();
// out << u << ' ';
// for (auto v : g[u]) {
// --pred[v];
// if (pred[v] == 0) {
// q.push(v);
// }
// }
// }
// }
std::bitset<N> vis;
int res[N];
int res_idx = 0;
void dfs(int u) {
vis[u] = true;
for (auto v : g[u]) {
if (vis[v]) {
continue;
}
dfs(v);
}
res[res_idx++] = u;
}
int main() {
int n, m;
in >> n >> m;
for (int i = 0; i < m; ++i) {
int u, v;
in >> u >> v;
g[u].push_back(v);
// ++pred[v];
}
std::queue<int> q;
for (int i = 1; i <= n; ++i) {
if (vis[i])
continue;
dfs(i);
}
for (int i = res_idx - 1; i >= 0; --i) {
out << res[i] << ' ';
}
out << '\n';
// bfs(q);
}