Pagini recente » Cod sursa (job #2565915) | Cod sursa (job #1578361) | Cod sursa (job #461299) | Cod sursa (job #34726) | Cod sursa (job #2756642)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<int>> Graph;
vector<bool> used;
vector<int> ans;
void DFS(int k)
{
used[k] = true;
for (auto it : Graph[k])
if (!used[it])
DFS(it);
ans.emplace_back(k + 1);
}
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int N, M;
scanf("%d%d", &N, &M);
Graph.resize(N);
used.resize(N);
for (int i = 0; i < M; ++i) {
int a, b;
scanf("%d%d", &a, &b);
--a;
--b;
Graph[a].emplace_back(b);
}
for (int k = 0; k < N; ++k)
if (!used[k])
DFS(k);
reverse(ans.begin(), ans.end());
for (auto it: ans)
printf("%d ", it);
return 0;
}