Pagini recente » Cod sursa (job #1213048) | Cod sursa (job #20665) | Cod sursa (job #1055102) | Cod sursa (job #3286654) | Cod sursa (job #1857447)
#include <bits/stdc++.h>
#define WHOLE(X) sorted.begin(), sorted.end()
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
const int N_MAX = 1e5 + 2;
int n;
vector <int> sorted;
vector <int> graph[N_MAX];
bitset <N_MAX> visited;
void read() {
int x, y, m;
fin >> n >> m;
for (int i = 0; i < m; ++i) {
fin >> x >> y;
graph[x].emplace_back(y);
}
}
void dfs(int node) {
visited.set(node);
for (const auto &son : graph[node]) {
if (!visited[son]) {
dfs(son);
}
}
sorted.emplace_back(node);
}
void solve() {
for (int i = 1; i <= n; ++i) {
if (!visited[i]) {
dfs(i);
}
}
}
void write() {
for (vector <int> :: iterator it = sorted.end() - 1; it >= sorted.begin(); --it) {
fout << *it << ' ';
}
}
int main() {
read();
solve();
write();
return 0;
}