Pagini recente » Cod sursa (job #648291) | Cod sursa (job #464506) | Cod sursa (job #1721913) | Cod sursa (job #2112560) | Cod sursa (job #1414563)
#include <cstdio>
#include <vector>
using namespace std;
int N, M, x, y;
vector<int> graph[50010], sorted;
int viz[50010];
void dfs(int node) {
for (vector<int>::iterator it=graph[node].begin(); it!=graph[node].end(); ++it) {
if (!viz[*it]) {
viz[*it] = true;
dfs(*it);
}
}
sorted.push_back(node);
}
int main () {
freopen("sortaret.in", "rt", stdin);
freopen("sortaret.out", "wt", stdout);
scanf("%d %d", &N, &M);
for (;M;--M) {
scanf("%d %d", &x, &y);
graph[x].push_back(y);
}
for (int i=1; i<=N; ++i) {
if (!viz[i]) {
viz[i] = true;
dfs(i);
}
}
for(int i = sorted.size()-1; i>=0; --i)
printf("%d ", sorted[i]);
return 0;
}