Pagini recente » Cod sursa (job #3223324) | Cod sursa (job #2568642) | Cod sursa (job #1778603) | Cod sursa (job #82213) | Cod sursa (job #2375154)
#include <bits/stdc++.h>
using namespace std;
int n,m,x,i,y,node,muchie;
vector<int>g[100010],q,ans;
pair<int,int>v[100010];
bool ap[100010];
int main()
{
ifstream cin ("ciclueuler.in");
ofstream cout ("ciclueuler.out");
cin>>n>>m;
for(i=1; i<=m; ++i)
{
cin>>x>>y;
g[x].push_back(i);
g[y].push_back(i);
v[i]= {x,y};
}
for(i=1; i<=n; ++i)
if(g[i].size()%2==1)
{
cout<<-1;
return 0;
}
q.push_back(1);
while(!q.empty())
{
node=q.back();
if(!g[node].empty())
{
muchie=g[node].back();
g[node].pop_back();
if(ap[muchie])continue;
ap[muchie]=true;
if(v[muchie].first==node)q.push_back(v[muchie].second);
else q.push_back(v[muchie].first);
}
else
{
q.pop_back();
ans.push_back(node);
}
}
ans.pop_back();
for(auto &it:ans)cout<<it<<" ";
return 0;
}