Pagini recente » Cod sursa (job #228295) | Cod sursa (job #2510926) | Cod sursa (job #2919319) | Cod sursa (job #1681463) | Cod sursa (job #1173628)
#include <cstdio>
#include <vector>
#include <bitset>
using namespace std;
int N, M;
vector<int> graph[50005];
vector<int> sol;
bitset<50005> visited;
void dfs(int node){
for (unsigned i=0; i<graph[node].size(); ++i){
if (!visited[graph[node][i]]){
visited[graph[node][i]] = 1;
dfs(graph[node][i]);
}
}
sol.push_back(node);
}
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
scanf("%d %d", &N, &M);
for (int i=0; i<M; ++i){
int from, to;
scanf("%d %d", &from, &to);
graph[from].push_back(to);
}
for (int i=1;i<=N; ++i){
if (!visited[i]){
visited[i] = 1;
dfs(i);
}
}
for (int i=sol.size()-1; i>=0; --i){
printf("%d ", sol[i]);
}
return 0;
}