Pagini recente » Cod sursa (job #1241590) | Cod sursa (job #1235277) | Cod sursa (job #1402170) | Cod sursa (job #7732) | Cod sursa (job #1276478)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
vector<int> q[100001];
int n,m,x,y;
void euler()
{
stack<int> querry;
querry.push(1);
while(!querry.empty())
{
x=querry.top();
if(q[x].size()==0)
{
querry.pop();
if(!querry.empty())
g<<x<<" ";
}
else
{
y=q[x][q[x].size()-1];
querry.push(y);
q[y].erase(find(q[y].begin(), q[y].end(), x));
q[x].pop_back();
}
}
}
int main(){
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>x>>y;
q[x].push_back(y);
q[y].push_back(x);
}
for(int i=1;i<=n;i++)
if(q[i].size()%2==1) {g<<-1; return 0;}
euler();
return 0;
}