Pagini recente » Cod sursa (job #1626645) | Cod sursa (job #546048) | Cod sursa (job #2070132) | Cod sursa (job #2328538) | Cod sursa (job #2178918)
#include<bits/stdc++.h>
#define pii pair<int,int>
#define NMAX 100005
using namespace std;
int S[5*NMAX];
bool viz[5*NMAX];
vector<int>C;
vector<pii>V[NMAX];
int n,m;
int main() {
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
cin>>n>>m;
for (int i=1; i<=m; i++) {
int x,y; cin>>x>>y;
V[x].push_back({y,i});
V[y].push_back({x,i});
}
for (int i=1; i<=n; i++) {
if (V[i].size() & 1) {
cout<<"-1"; return 0;
}
}
int vf=1; S[1]=1;
while (vf) {
int x=S[vf];
if (V[x].empty()) {
C.push_back(x);
vf--;
continue;
}
int y=V[x][V[x].size()-1].first;
int idx=V[x][V[x].size()-1].second;
V[x].pop_back();
if (!viz[idx]) {
viz[idx]=1;
S[++vf]=y;
}
}
for (int i=0; i<C.size()-1; i++) cout<<C[i]<<" ";
return 0;
}