Pagini recente » Cod sursa (job #1410500) | Cod sursa (job #108389) | Cod sursa (job #2933622) | Cod sursa (job #763113) | Cod sursa (job #927202)
Cod sursa(job #927202)
#include <fstream>
#include <vector>
#include <map>
using namespace std;
ifstream cin("ciclueuler.in"); ofstream cout("ciclueuler.out");
vector <int> rez;
int i, j, n, m, x, y, st;
vector <int> v[100005];
map < pair<int, int>, int> mp;
int par[100005];
void dfs (int fx){
vector <int> part;
for (vector<int>::iterator it = v[fx].begin(); it!=v[fx].end(); it++){
if (mp[make_pair(fx, (*it))]){
mp[make_pair(fx, (*it))]--;
mp[make_pair((*it), fx)]--;
dfs(*it);
cout<<(*it)<<" ";
}
}
}
int main(){
cin>>n>>m;
for (i=1; i<=m; i++){
cin>>x>>y;
par[x]++; par[y]++;
v[x].push_back(y);
v[y].push_back(x);
mp[make_pair(x, y)]++;
mp[make_pair(y, x)]++;
}
for (i=1; i<=n; i++) if (par[i]%2){
st=-1;
break;
}
if (st == -1) cout<<-1;
else {
dfs(1);
}
}