Pagini recente » Cod sursa (job #105260) | Cod sursa (job #1878299) | Cod sursa (job #2099520) | Cod sursa (job #2224764) | Cod sursa (job #678019)
Cod sursa(job #678019)
#include<cstdio>
#include<cstdlib>
#include<list>
#include<vector>
using namespace std;
int n, m;
vector<int> graph[50010];
list<int> path;
int seen[50010];
void dfs(int node)
{
seen[node] = 1;
int i;
for(i = 0; i < graph[node].size(); ++i)
if(seen[graph[node][i]] != 1)
dfs(graph[node][i]);
path.push_front(node);
}
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
scanf("%d %d", &n, &m);
int i;
for (i = 1; i <= m; i++)
{
int a, b;
scanf("%d %d", &a, &b);
graph[a].push_back(b);
}
for (i = 1; i <= n; i++)
if (seen[i] != 1)
dfs(i);
for(list<int>::iterator it = path.begin(); it != path.end(); it++)
printf("%d ", *it);
return 0;
}