Pagini recente » Cod sursa (job #3222221) | Cod sursa (job #981373) | Cod sursa (job #2099004) | Cod sursa (job #1752866) | Cod sursa (job #1514853)
#include<iostream>
#include<fstream>
#include<algorithm>
#include<list>
using namespace std;
ifstream si("ciclueuler.in");
ofstream so("ciclueuler.out");
list<int> l[1000005];
int cic[5000005],lg;
list<int>::iterator findp(int p,int pct)
{
list<int>::iterator i;
for(i=l[pct].begin();i!=l[pct].end();++i)
if(*i==p)
return i;
}
void ciclu(int p)
{
int pct;
while(!l[p].empty())
{
pct=l[p].front();
l[p].pop_front();
l[pct].erase(findp(p,pct));
ciclu(pct);
}
cic[lg++]=p;
}
int main()
{
int n,m;
si>>n>>m;
int i,a,b;
for(i=0;i<m;++i)
{
si>>a>>b;
l[a].push_back(b);
l[b].push_back(a);
}
ciclu(1);
if(lg<m||m%2==1)
so<<-1;
else
for(i=1;i<lg;++i)
so<<cic[i]<<' ';
}