Pagini recente » Cod sursa (job #1937402) | Cod sursa (job #919361) | Cod sursa (job #1937446) | Cod sursa (job #1087897) | Cod sursa (job #1452357)
#include <cstdio>
#include <vector>
using namespace std;
const int Nmax = 50010;
int n , m , x , y;
bool marked[Nmax];
vector < int > ans , g[Nmax];
void dfs(int node)
{
marked[node] = true;
for (int i = 0; i < g[node].size(); ++i)
if (!marked[g[node][i]])
dfs(g[node][i]);
ans.push_back(node);
}
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
for (scanf("%d %d", &n, &m); m ; --m)
{
scanf("%d %d", &x, &y);
g[x].push_back(y);
}
for (int i = 1; i <= n; ++i)
if (!marked[i])
dfs(i);
for ( ; ans.size(); ans.pop_back())
printf("%d ", ans.back());
return 0;
}