Pagini recente » Cod sursa (job #1680464) | Cod sursa (job #1129086) | Cod sursa (job #2189768) | Cod sursa (job #2361639) | Cod sursa (job #2013041)
#include <fstream>
#include <vector>
#include <algorithm>
#define DIM 100001
using namespace std;
ifstream fi("ciclueuler.in");
ofstream fo("ciclueuler.out");
int n,m;
vector<int> V[DIM];
bool ok;
vector<int> R;
void dfs(int v)
{
if(V[v].size())
for(int i=0;i<V[v].size();i++)
{
int b=V[v].back();
V[v].pop_back();
V[b].erase(find(V[b].begin(),V[b].end(),v));
dfs(b);
}
R.push_back(v);
}
int main()
{
fi>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b;
fi>>a>>b;
V[a].push_back(b);
V[b].push_back(a);
}
ok=true;
for(int i=1;i<=n;i++)
if(V[i].size()==0 || V[i].size()%2==1)
ok=false;
if(!ok)
fo<<-1;
else
{
dfs(1);
for(int i=0;i<R.size()-1;i++)
fo<<R[i]<<" ";
}
fi.close();
fo.close();
return 0;
}