Pagini recente » Cod sursa (job #1870615) | Cod sursa (job #2633876) | Cod sursa (job #2317681) | Cod sursa (job #1937789) | Cod sursa (job #2590688)
#include<bits/stdc++.h>
#define N 10030
#define pii pair<int,int>
#define x first
#define y second
using namespace std;
int n,m,k,a[N];
stack<int>S;
vector<pii>V[N];
bool u[N*6];
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) return cout<<-1,0;
}
S.push(1);
while (S.size()) {
int st=S.top();// cout<<x<<"!";
if (V[st].size()) {
int y=V[st].back().x;
int idx=V[st].back().y;
if (!u[idx]) {
u[idx]=1;
S.push(y);
}
V[st].pop_back();
} else {
S.pop();
a[++k]=st;
}
}
//if (k!=m+1) return cout<<-1,0;
for (int i=k; i>1; --i) cout<<a[i]<<" ";
return 0;
}