Pagini recente » Cod sursa (job #3128449) | Cod sursa (job #3206411) | Cod sursa (job #2380935) | Cod sursa (job #525232) | Cod sursa (job #1135016)
#include <iostream>
#include <vector>
using namespace std;
int used[500001];
struct v{
int no;
int id;
};
vector<int> va[100001];
vector<v> g[100001];
int ff=0;
int m;
void lue(int a){
for (int i=0;i<va[a].size();i++){
int x=va[a][i];
ff++;
if (ff<m) cout <<x<<" ";
if (va[x].size()>0&&x!=a){
for (int i=0;i<va[x].size();i++){
if (va[x][i]!=a) lue(va[x][i]);
}
}
}
}
int main(){
freopen ("ciclueuler.in","r",stdin);
freopen ("ciclueuler.out","w",stdout);
int n;
cin>>n>>m;
for (int i=0;i<m;i++){
int a,b;
cin>>a>>b;
v ve;
ve.no=b;
ve.id=i+1;
g[a].push_back(ve);
ve.no=a;
ve.id=i+1;
g[b].push_back(ve);
}
int an=1;
int nn=1;
int fo=0;
while (fo<m){
int f=1;
while (f){
f=0;
for (int i=0;i<g[nn].size();i++){
v ve=g[nn][i];
if (!used[ve.id]){
nn=ve.no;
f=1;
fo++;
va[an].push_back(nn);
//cout <<an<<" "<<nn<<endl;
used[ve.id]=1;
break;
}
}
}
if (fo<m){
for (int i=0;i<va[an].size();i++){
int nt=va[an][i];
for (int ii=0;ii<g[nt].size();ii++){
v ve=g[nt][ii];
if (!used[ve.id]){
f=1;
an=nt;
nn=nt;
break;
}
}
if (f){
break;
}
}
}
}
cout <<1<<" ";
lue(1);
cout <<endl;
}