Pagini recente » Cod sursa (job #2507344) | Cod sursa (job #713702) | Cod sursa (job #1798964) | Cod sursa (job #1877765) | Cod sursa (job #2169332)
#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];
inline void DFS(int l)
{
int i=0,dim=V[l].size(),k;
for(;i<dim;++i)
{ k=V[l][i];
if(! viz[ k ] )
{ viz[k]=1;
DFS(x[k]+y[k]-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;
}