Pagini recente » Cod sursa (job #1081164) | Cod sursa (job #1554124) | Cod sursa (job #2446873) | Cod sursa (job #1240195) | Cod sursa (job #2169308)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n,m,x[500005],y[500005],ct,u[500505];
vector<int>V[100005];
bool viz[500005];
void DFS(int l)
{
vector<int>::iterator it;
for(it=V[l].begin();it!=V[l].end();++it)
if(!viz[*it])
{ viz[*it]=1;
DFS(x[*it]+y[*it]-l);
}
u[++ct]=l;
}
int main()
{
fin>>n>>m;
int i,a,b,ok=1;
for(i=1;i<=m;++i)
{ fin>>x[i]>>y[i];
V[x[i]].push_back(i);
V[y[i]].push_back(i);
}
for(i=1;i<=n;++i)
if(V[i].size()%2==1 || V[i].size()==0)
{ok=0; break;}
if(ok==0)
fout<<-1;
else
{ DFS(1);
for(i=1;i<=ct;++i)
fout<<u[i]<<" ";
}
return 0;
}