Pagini recente » Cod sursa (job #203351) | Cod sursa (job #2058336) | Cod sursa (job #3225906) | Cod sursa (job #2396310) | Cod sursa (job #2739848)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
const int DIM=1e5+5;
int n,m;
vector<pair<int,int>> v[DIM];
vector<int> solutie;
bool used[5*DIM];
void euler(int nod)
{
while(!v[nod].empty())
{
pair<int,int> e=v[nod].back();
v[nod].pop_back();
if (used[e.second])
continue;
used[e.second]=true;
euler(e.first);
}
solutie.push_back(nod);
}
int main()
{
f>>n>>m;
int x,y;
for (int i = 1;i <= m;i++){
f>>x>>y;
v[x].push_back({y,i});
v[y].push_back({x,i});
}
bool admite = true;
for (int i = 1;i <=n ;i++){
if (int(v[i].size())%2==1)
{
admite=false;
break;
}
}
if (!admite){
g<<-1;
exit(0);
}
euler(1);
solutie.pop_back();
for (auto it : solutie)
g<<it<<" ";
return 0;
}