Pagini recente » Cod sursa (job #1240813) | Cod sursa (job #2487212) | Cod sursa (job #1782928) | Cod sursa (job #2354073) | Cod sursa (job #2722748)
#include<fstream>
#include<vector>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
int a[500001],b[500001];
vector<int> v[100001],ans;
bool viz[500001];
void euler(int x){
while(v[x].size()!=0){
int m=v[x].back();
v[x].pop_back();
if(!viz[m]){
viz[m]=1;
int vecin;
if(a[m]==x)
vecin=b[m];
else
vecin=a[m];
euler(vecin);
}
}
ans.push_back(x);
}
int main () {
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a[i]>>b[i];
v[a[i]].push_back(i);
v[b[i]].push_back(i);
}
int ok=1;
for(int i=1;i<=n;i++){
if(v[i].size()%2==1)
ok=0;
}
if(ok==0)
cout<<-1;
else{
euler(1);
for(int i=0;i<ans.size()-1;i++)
cout<<ans[i]<<" ";
}
}