Pagini recente » Cod sursa (job #1524427) | Cod sursa (job #725552) | Cod sursa (job #2820262) | Cod sursa (job #2580890) | Cod sursa (job #2666924)
#include <iostream>
#include <vector>
#include <fstream>
#include <queue>
#include <algorithm>
const int N_MAX = 100005;
std :: vector<int> graph[N_MAX];
std :: vector<int> sorted;
bool vis[N_MAX];
int n, m;
void dfs(int node) {
vis[node] = true;
for (int i : graph[node]) {
if (!vis[i]) {
dfs(i);
}
}
sorted.push_back(node);
}
int main() {
std :: ifstream fin ("sortaret.in");
std :: ofstream fout ("soratret.out");
fin >> n >> m;
for (int i = 1; i <= m ; ++i) {
int a, b;
fin >> a >> b;
graph[a].push_back(b);
}
for (int i = 1; i <= n; ++i) {
if (!vis[i]) {
dfs(i);
}
}
std::reverse(sorted.begin(), sorted.end());
for (int i : sorted)
fout << i << " ";
return 0;
}