Pagini recente » Cod sursa (job #2210089) | Cod sursa (job #1003608) | Cod sursa (job #339929) | Cod sursa (job #174893) | Cod sursa (job #2230466)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
const int N=100000+5;
const int M=500000+5;
int n,m;
vector<int>ind[N];
int f[M],s[M];
bool viz[M];
int ans[M],vf=0;
int k;
void dfs(int nod) {
while(!ind[nod].empty()) {
k=ind[nod].back();
ind[nod].pop_back();
if(viz[k]==0) {
viz[k]=1;
dfs(f[k]+s[k]-nod);
}
}
ans[++vf]=nod;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0);
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=m;i++) {
cin>>f[i]>>s[i];
ind[f[i]].push_back(i);
ind[s[i]].push_back(i);
}
for(int i=1;i<=n;i++) {
if(ind[i].size()%2==1) {
cout<<"-1\n";
return 0;
}
}
dfs(1);
for(int i=1;i<vf;i++) {
cout<<ans[i]<<" ";
}
cout<<"\n";
return 0;
}
/**
**/