Pagini recente » Cod sursa (job #1631240) | Cod sursa (job #2093456) | Cod sursa (job #1079749) | Cod sursa (job #2234935) | Cod sursa (job #878571)
Cod sursa(job #878571)
//#include <iostream>
#include <cstdio>
#include <vector>
//#include <stack>
#define MAXN 50007
#define MAXM 100007
using namespace std;
bool vizitat[MAXN];
int M,N;
vector<int> mylist[MAXN];
//stack<int> mystack;
int mystack[MAXN];
vector<int> solution;
void DFS(int i,int num){
vector<int>::iterator it;
if(!mylist[i].empty()){
for(it=mylist[i].begin();it!=mylist[i].end();it++){
if(!vizitat[*it]){
vizitat[*it]=1;
num++;
mystack[num]=*it;
//mystack.push(*it);
solution.push_back(*it);
DFS(*it,num);
mystack[num]=0;
num--;
//mystack.pop();}
}
}
}
}
int main()
{
int x,y;
FILE *inFile;
FILE *outFile;
inFile = fopen("sortaret.in","r");
outFile= fopen("sortaret.out","w");
fscanf(inFile,"%d",&N);
fscanf(inFile,"%d",&M);
for(int i=1;i<=M;i++){
fscanf(inFile,"%d",&x);
fscanf(inFile,"%d",&y);
mylist[x].push_back(y);
}
vizitat[1]=1;
//mystack.push(1);
mystack[0]=1;
solution.push_back(1);
DFS(1,0);
vector<int>::iterator ite;
fprintf(outFile,"1");
for(ite=solution.begin()+1;ite!=solution.end();ite++){
fprintf(outFile," %d",*ite);}
fclose(inFile);
fclose(outFile);
return 0;
}