Pagini recente » Cod sursa (job #2453418) | Cod sursa (job #1827914) | Cod sursa (job #2840448) | Cod sursa (job #3042377) | Cod sursa (job #2326740)
#include<bits/stdc++.h>
#define s second
#define f first
#define N 100001
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
int r[N],n,m,k=-1;
vector<pair<int,int>> a[N];
bool v[5*N];
void dfs(int i, int j){
++k;
for(auto it:a[i]){
if(!v[it.s]){
v[it.s]=1;
dfs(it.f, it.s);
}
}
if(k==m)
out<<i<<" ", --m;
else v[j]=0;
--k;
}
int main(){
int i,j,x,y;
in>>n>>m;
for(i=1; i<=m; ++i){
in>>x>>y;
a[x].push_back({y,i});
a[y].push_back({x,i});
++r[x], ++r[y];
}
for(i=1; i<=n; ++i)
if(r[i]%2){
out<<-1;
return 0;
}
out<<"1 ";
dfs(1,0);
return 0;
}