Pagini recente » Cod sursa (job #2330337) | Cod sursa (job #268405) | Cod sursa (job #482733) | Cod sursa (job #1041474) | Cod sursa (job #3167791)
#include <bits/stdc++.h>
const int NMAX=100005;
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
int n,m;
int i,a,b,nr;
bool t[5*NMAX];
vector<pair<int,int>> G[NMAX];
vector<int>ans;
static inline void dfs(int nod)
{
for(auto it:G[nod])
{
if(t[it.second]==false)
{
t[it.second]=true;
dfs(it.first);
}
}
ans.push_back(nod);
}
int main()
{
f.tie(NULL);
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>a>>b;
G[a].push_back(make_pair(b, i));
G[b].push_back(make_pair(a, i));
}
for(i=1;i<=n;i++)
{
if(G[i].size()%2)
{
g<<-1<<'\n';
return 0;
}
}
dfs(1);
for(i=0;i<int(ans.size())-1;i++) g<<ans[i]<<' ';
return 0;
}