Pagini recente » Cod sursa (job #2004578) | Borderou de evaluare (job #2627421) | Cod sursa (job #2449485)
#include <cstdio>
#include <vector>
using namespace std;
const int N = 50001;
int n, m;
vector <int> g[N];
bool u[N];
vector <int> sol;
void DF(int a) {
u[a] = 1;
for (auto &b : g[a])
if (!u[b])
DF(b);
sol.push_back(a);
}
int main() {
freopen ("sortaret.in", "r", stdin);
freopen ("sortaret.out", "w", stdout);
scanf("%d %d", &n, &m);
for (int i = 1; i <= m; i++) {
int a, b;
scanf("%d %d", &a, &b);
g[a].push_back(b);
}
for (int i = 1; i <= n; i++)
if (!u[i])
DF(i);
for (int i = n - 1; i >= 0; i--)
printf("%d ", sol[i]);
return 0;
}