Pagini recente » Cod sursa (job #3147997) | Cod sursa (job #620384) | Cod sursa (job #2480942) | Cod sursa (job #1468178) | Cod sursa (job #2052191)
#include <fstream>
#include <list>
#include <stack>
#include <algorithm>
#define file "ciclueuler"
#define N 100003
using namespace std;
ifstream fin(file".in");
ofstream fout(file".out");
int n,m,x,y;
list<int> v[N];
stack<int> st;
void input()
{
fin>>n>>m;
while(m--)
{
fin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
}
bool Ciclu()
{
for(int i=1; i<=n; ++i)
if(v[i].size() == 0 || v[i].size() %2 != 0) return 0;
return 1;
}
void output()
{
//for(int i=1; i<=n; ++i)
// fout<<v[i].size()<<" ";
}
int main()
{
input();
if(Ciclu())
{
st.push(1);
while(!st.empty())
{
int nod = st.top();
while(!v[nod].empty())
{
int nodurm = v[nod].front();
v[nod].pop_front();
v[nodurm].erase(find(v[nodurm].begin(), v[nodurm].end(), nod));
st.push(nodurm);
nod = nodurm;
}
fout<<st.top()<<" ";
st.pop();
}
}
else fout<<"-1\n";
fin.close(); fout.close();
return 0;
}