Pagini recente » Cod sursa (job #1633774) | Cod sursa (job #1138970) | Cod sursa (job #2460519) | Cod sursa (job #2047574) | Cod sursa (job #1952597)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <stack>
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
unordered_map<int, int> vec[100003];
int intr[100003];
stack<int> rez;
void eul(int nod) {
int crr;
for(unordered_map<int, int>::iterator it = vec[nod].begin(); it != vec[nod].end(); it++) {
if(it->second == 0)
continue;
crr = it->first;
vec[nod][crr]--;
vec[crr][nod]--;
//cout << nod << " " << crr << '\n';
eul(crr);
}
rez.push(nod);
}
int main() {
int n,m;
in >> n >> m;
int x,y;
for(int i = 1; i <= m; i++) {
in >> x >> y;
vec[x][y]++;
vec[y][x]++;
intr[x]++;
intr[y]++;
}
for(int i = 1; i <= n; i++) {
if(intr[i]%2 == 1) {
out << -1;
return 0;
}
}
eul(1);
while(!rez.empty()) {
out << rez.top() << " ";
rez.pop();
}
return 0;
}