Pagini recente » Cod sursa (job #634253) | Cod sursa (job #2393013) | Cod sursa (job #1220291) | Cod sursa (job #3180259) | Cod sursa (job #1219990)
#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
int n, m;
vector<int> g[50005];
bool viz[50005];
stack<int> s;
void dfs(int x) {
viz[x] = 1;
for (int i = 0; i < g[x].size(); i++) {
if (!viz[g[x][i]]) {
dfs(g[x][i]);
s.push(g[x][i]);
}
}
}
int main() {
int x, y;
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d %d", &n, &m);
for (int i = 0; i < m; i++) {
scanf("%d %d", &x, &y);
g[x].push_back(y);
}
for (int i = 1; i <= n; i++)
if (!viz[i]) {
dfs(i);
s.push(i);
}
while (s.size()) {
printf("%d ", s.top());
s.pop();
}
return 0;
}