Pagini recente » Cod sursa (job #1124926) | Cod sursa (job #3190557) | Cod sursa (job #1062182) | Rating problema de trimis (chestia) | Cod sursa (job #1914146)
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n,m,j,k,ct,s[500005],ok;
struct muchie{int x,y;}a[500005];
vector <int>v[500005];
bool viz[500005];
void DFS(int nod)
{int i;
for(i=0;i<v[nod].size();i++)
{if(viz[v[nod][i]]==0){viz[v[nod][i]]=1;DFS(a[v[nod][i]].x+a[v[nod][i]].y-nod);}
}ct++;cout<<ct<<" ";s[ct]=nod;
}
int main()
{int i;
fin>>n>>m;
for(i=1;i<=m;i++)
{fin>>a[i].x>>a[i].y;
v[a[i].x].push_back(i);
v[a[i].y].push_back(i);
}
for(i=1;i<=n;i++)
{if(v[i].size()%2==1){fout<<"-1";ok=1;break;}
}
if(ok==0){
DFS(1);
if(ct==m+1)
for(i=ct;i>=2;i--)
fout<<s[i]<<" ";
else fout<<"-1";
}
}