Pagini recente » Cod sursa (job #1799286) | Cod sursa (job #78564) | Cod sursa (job #1793464) | Cod sursa (job #532486) | Cod sursa (job #3178032)
#include <fstream>
#include <vector>
#include <bitset>
#include <algorithm>
std::ifstream fin("sortaret.in");
std::ofstream fout("sortaret.out");
const int nMax = 5e4 + 1;
std::bitset<nMax> vis;
std::vector<int> sort;
std::vector<std::vector<int>> graph;
void dfs(int node) {
vis[node] = 1;
for (int i : graph[node])
if (!vis[i])
dfs(i);
sort.emplace_back(node);
}
int main() {
int N, M;
fin >> N >> M;
graph.assign(N, std::vector<int>());
for (int i = 1; i <= M; i++) {
int x, y;
fin >> x >> y;
x--; y--;
graph[x].emplace_back(y);
}
for (int i = 0; i < N; i++)
if (!vis[i])
dfs(i);
std::reverse(sort.begin(), sort.end());
for (int i : sort)
fout << i + 1 << ' ';
graph.clear();
fin.clear(); fout.clear();
return 0;
}