Pagini recente » Cod sursa (job #2090391) | Cod sursa (job #1127228) | Cod sursa (job #472006) | Cod sursa (job #2290251) | Cod sursa (job #1218726)
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
vector <int> V[100113];
long n,i,j,valid,m,a,b;
int viz[100113];
long RG[100113];
void euler(int nod)
{
int key;
if (!V[nod].empty()){
key=V[nod][V[nod].size()-1];
V[nod].pop_back();
cout<<key<<" ";
for (i=V[key].size()-1;i>=0;--i)
if (V[key][i]==nod){
V[key].erase(V[key].begin()+i);
break;
}
euler(key);
}
}
int main()
{
cin>>n>>m;
for (i=1;i<=m;++i) {
cin>>a>>b;
V[a].push_back(b);
V[b].push_back(a);
++RG[a];
++RG[b];
}
valid=1;
for (i=1;i<=n;++i)
if (RG[i]%2!=0){
cout<<"-1 \n";
valid=0;
break;
}
if (valid==1) euler(1);
return 0;
}