Pagini recente » Cod sursa (job #1797516) | Cod sursa (job #1766911) | Cod sursa (job #262859) | Cod sursa (job #882048) | Cod sursa (job #1909497)
#include <bits/stdc++.h>
using namespace std;
const int nMax = 50007;
int n, m;
vector<int>g[nMax];
bool vaz[nMax];
vector<int>ordine;
void Citire() {
scanf("%d%d", &n, &m);
for (int i = 1, from, to; i <= m; ++i) {
scanf("%d%d", &from, &to);
g[from].push_back(to);
}
}
void dfs(int nod) {
vaz[nod] = true;
for (const auto& itr : g[nod])
if (!vaz[itr])
dfs(itr);
ordine.push_back(nod);
}
void getOrder() {
for (int i = 1; i <= n; ++i)
if (!vaz[i])dfs(i);
}
void print(const vector<int>&that) {
for (const auto& itr : that)
printf("%d ", itr);
printf("\n");
}
int main() {
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
Citire();
getOrder();
reverse(begin(ordine), end(ordine));
print(ordine);
return 0;
}