Pagini recente » Cod sursa (job #2204094) | Cod sursa (job #94696) | Cod sursa (job #629833) | Cod sursa (job #792795) | Cod sursa (job #2198882)
#include <bits/stdc++.h>
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
vector <int> v[100005];
vector <int> ciclu;
void euler(int nod)
{
while(v[nod].size()) {
int nou = v[nod].back();
v[nod].pop_back();
v[nou].erase(find(v[nou].begin(),v[nou].end(),nod));
euler(nou);
}
ciclu.push_back(nod);
}
int main()
{int n,m,i,a,b;
in>>n>>m;
for(i=1;i<=m;i++)
{
in>>a>>b;
v[a].push_back(b);
b[v].push_back(a);
}
for(i=1;i<=n;i++)
if(!v[i].size()||v[i].size()%2==1) {
out<<"-1\n";
return 0;
}
euler(1);
ciclu.pop_back();
for (auto nod: ciclu) {
out<<nod<<" ";
}
return 0;
}