Pagini recente » Cod sursa (job #1758578) | Cod sursa (job #1460467) | Cod sursa (job #1412323) | Cod sursa (job #933825) | Cod sursa (job #1455413)
#include <stdio.h>
#include <vector>
#include <stack>
#define NMAX 50001
using namespace std;
vector <int> V[NMAX];
int N, M, i, j;
stack <int> S;
bool visited[NMAX] = {0};
int count =1;
void DFS(int index){
//if(count == N)
// printf("%d", index);
//else
// printf("%d ", index);
count++;
visited[index] = 1;
for (j=0; j<V[index].size(); j++)
if (visited[V[index][j]] == 0)
DFS(V[index][j]);
S.push(index);
}
int main(){
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int x, y;
scanf("%d %d ", &N, &M);
for (i=0; i<M; i++){
scanf("%d %d ", &x, &y);
V[x].push_back(y);
}
//for (i=1; i<=N; i++){
// for (j=0; j<V[i].size(); j++)
// printf("%d ", V[i][j]);
// printf("\n");
//}
for(i=1; i<=N; i++){
if(visited[i] == 0)
DFS(i);
}
while(!S.empty()){
printf("%d ", S.top());
S.pop();
}
return 0;
}