Pagini recente » Cod sursa (job #760675) | Cod sursa (job #2637264) | Cod sursa (job #132696) | Cod sursa (job #672724) | Cod sursa (job #2121071)
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int>lista[100001];
int st[500001];
int main ()
{
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
int k=0,i,x,y,nod,fiu,N,M;
f>>N>>M;
for(i=1;i<=M;i++)
{
f>>x>>y;
lista[x].push_back(y);
lista[y].push_back(x);
}
int ok=0;
for(i=1;i<=N&&ok==0;i++)
{
if(lista[i].size()%2!=0)
ok=1;
}
if(ok==1)
g<<-1;
else
{
k=1;
st[1]=1;
while(k>0)
{
nod=st[k];
if(lista[nod].size()!=0)
{
fiu=lista[nod].back();
k++;
st[k]=fiu;
lista[nod].pop_back();
lista[fiu].erase(find(lista[fiu].begin(),lista[fiu].end(),nod));
}
else
{
if(k!=1)
g<<st[k]<<" ";
k--;
}
}
}
return 0;
}