Pagini recente » Cod sursa (job #969084) | Cod sursa (job #1149896) | Cod sursa (job #2272666) | Cod sursa (job #1482732) | 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;
}