Pagini recente » Cod sursa (job #845265) | Cod sursa (job #1053966) | Cod sursa (job #2240842) | Cod sursa (job #2316769) | Cod sursa (job #3178014)
#include <fstream>
#include <vector>
#include <bitset>
std::ifstream fin("sortaret.in");
std::ofstream fout("sortaret.out");
const int nMax = 5e4;
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;
}