Pagini recente » Cod sursa (job #3281476) | Cod sursa (job #2685489) | Cod sursa (job #1472018) | Cod sursa (job #1765997) | Cod sursa (job #1455419)
#include <stdio.h>
#include <vector>
#include <stack>
#define ALB 0
#define GRI 1
#define NEGRU 2
#define NMAX 50005
using namespace std;
vector <int> V[NMAX];
stack <int> S;
int N, M;
bool color[NMAX];
void DFS(int index){
int j;
printf("%d ", index);
color[index] = GRI;
for (j=0; j<V[index].size(); j++)
if (color[V[index][j]] == ALB)
DFS(V[index][j]);
color[index] = NEGRU;
//S.push(index);
}
int main(){
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int x, y, i, j;
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++){
if(color[i] == ALB)
DFS(i);
}
//while(!S.empty()){
// printf("%d ", S.top());
// S.pop();
//}
return 0;
}