Pagini recente » Cod sursa (job #1365791) | Cod sursa (job #1675992) | Cod sursa (job #1353085) | Cod sursa (job #1342990) | Cod sursa (job #3198538)
#include<bits/stdc++.h>
using namespace std;
ifstream F("ciclueuler.in");
ofstream G("ciclueuler.out");
int n,m,i,j,k,l=1;
vector<int> g[100001],h;
void A(int i)
{
int j,k=g[i].size(),l,t,r;
for(j=0;j<k;++j)
if(g[i][j]) {
for(r=g[i][j],t=g[r].size(),g[i][j]=0,l=0;l<t&&g[r][l]!=i;++l);
if(g[r][l]==i)
g[r][l]=0,A(r);
}
h.push_back(i);
}
int main()
{
for(F>>n>>m;m--;F>>i>>j,g[i].push_back(j),g[j].push_back(i));
for(i=1;i<=n;++i)
if(g[i].size()&1)
++k,l=i;
if(k>2||k==1)
return G<<-1,0;
for(A(l),k=h.size()-1,i=0;i<k;G<<h[i++]<<' ');
return 0;
}