Pagini recente » Cod sursa (job #2873624) | Cod sursa (job #2057309) | Cod sursa (job #2114368) | Cod sursa (job #2897964) | Cod sursa (job #2305876)
#include <stdio.h>
#include <vector>
#include <algorithm>
#define SZ(x) ((int)(x.size()))
#define nmax 100010
using namespace std;
int n, m;
bool viz[nmax];
vector <int> answer, graph[nmax];
void dfs(int node)
{
viz[node] = true;
for (int i = 0; i < SZ(graph[node]); i++)
if (!viz[graph[node][i]]) dfs(graph[node][i]);
answer.push_back(node);
}
int main()
{
scanf("%d %d", &n, &m);
for (int i = 1; i <= m; i++) {
int x, y;
scanf("%d %d", &x, &y);
graph[x].push_back(y);
}
for (int i = 1; i <= n; i++)
if (!viz[i]) dfs(i);
reverse(answer.begin(), answer.end());
for (int i = 0; i < SZ(answer); i++) printf("%d ", answer[i]);
return 0;
}