Pagini recente » Cod sursa (job #2935794) | Cod sursa (job #25126) | Cod sursa (job #1447371) | Cod sursa (job #2123366) | Cod sursa (job #2385531)
#include <bits/stdc++.h>
#define DMAX 100005
#define NMAX 500005
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
list<int> LA[DMAX];
int n;
//bool uz1[DMAX];
//bool uzm[NMAX];
//int g[DMAX];
void citire();
bool verif();
void DFS1(int x);
int main()
{
citire();
if(verif())
{DFS1(1);fout<<'\n';}
else
fout<<"-1"<<'\n';
return 0;
}
void citire()
{int a,b,M,i;
fin>>n;
fin>>M;
for(i=1;i<=M;i++)
{
fin>>a>>b;
LA[a].push_back(b);
//if(a!=b)
{
LA[b].push_back(a);
}
//g[a]++;
//g[b]++;
}
}
bool verif()
{int i;
//DFS(1);
for(i=1;i<=n;i++)
{//if(uz1[i]==0)
//return 0;
if(LA[i].size()%2)
return 0;
}
return 1;
}
/*void DFS(int x)
{int i;
uz1[x]=1;
for(i=0;i<LA[x].size();i++)
if(!uz1[LA[x][i].v])
DFS(LA[x][i].v);
}*/
void DFS1(int x)
{int nod;
//list <int>::iterator nod1;
while(LA[x].size())
{nod=LA[x].front();
LA[x].pop_front();
//if(g[nod]>0)
{
LA[nod].erase(find(LA[nod].begin(),LA[nod].end(),x));
//g[nod]--;
DFS1(nod);
}
}
fout<<x<<' ';
}