Pagini recente » Cod sursa (job #863012) | Cod sursa (job #1228139) | Cod sursa (job #1345688) | Cod sursa (job #2290183) | Cod sursa (job #2343161)
#include <fstream>
#include <stack>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
const int NMAX=100000;
vector<int>v[NMAX+5];
stack <int> st;
void Eu(int node)
{
int other;
while(!v[node].empty())
{
st.push(node);
other=v[node].back();
v[node].pop_back();
v[other].erase(find(v[other].begin(),v[other].end(),node));
node=other;
}
}
int main()
{
int node,i,j,n,m,u,l,conex=1;
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>u>>l;
v[u].push_back(l);
v[l].push_back(u);
}
conex=1;
for(i=1;i<=n;i++)
if(v[i].size()%2!=0)
{
conex=0;
break;
}
if(conex==1)
{
node=1;
do
{
Eu(node);
node=st.top();
cout<<node<<" ";
st.pop();
}while(!st.empty());
}
else
cout<<-1;
return 0;
}