Pagini recente » Cod sursa (job #2765072) | Cod sursa (job #2195702) | Cod sursa (job #2864191) | Cod sursa (job #1634266) | Cod sursa (job #1798999)
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int n,m,k;
vector<int>v[100001];
vector<int>::iterator it;
int stiva[500001];
void citire(){
int i,x,y;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
}
void euler ( int nod ){
int fiu;
while(v[nod].size()!=0){
fiu=v[nod].back();
k++;
stiva[k]=fiu;
v[nod].pop_back();
it=find(v[fiu].begin(),v[fiu].end(),nod);
v[fiu].erase(it);
nod=fiu;
}
}
int main(){
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
citire();
stiva[1]=1;
k=1;
printf("%d ",stiva[k]);
while(k!=0){
euler(stiva[k]);
k--;
if(k>1)
printf("%d ",stiva[k]);
}
return 0;
}