Pagini recente » Cod sursa (job #2782599) | Cod sursa (job #594323) | Cod sursa (job #923826) | Cod sursa (job #407504) | Cod sursa (job #2144565)
#include<cstdio>
#include<vector>
using namespace std;
FILE *fin = freopen("sortaret.in", "r", stdin);
FILE *fout = freopen("sortaret.out", "w", stdout);
const int NMax = 50001;
int N, M, P;
int x, y;
int w[NMax];
bool visit[NMax];
vector < int > v[NMax];
void DFS(int node){
visit[node] = 1;
vector < int > :: iterator it;
for (it = v[node].begin(); it != v[node].end(); it++)
if (!visit[*it])
DFS(*it);
w[++ P] = node;
}
int main(){
scanf("%d%d", &N, &M);
for (int i = 1; i <= M; i++){
scanf("%d%d", &x, &y);
v[x].push_back(y);
}
for (int i = 1; i <= N; i++)
if (!visit[i])
DFS(i);
for (int i = P; i; i--)
printf("%d ", w[i]);
}