Pagini recente » Cod sursa (job #2824586) | Cod sursa (job #1765988) | Cod sursa (job #1758231) | Cod sursa (job #1751487) | Cod sursa (job #2101918)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
map< pair<int, int>, bool> viz;
vector< int > gr[MAXN];
int grad[MAXN];
void dfs(int node){
for(auto x : gr[node]){
if(!viz[{node, x}]){
viz[{node, x}] = viz[{x, node}] = true;
dfs(x);
}
}
g << node << ' ';
}
int main(){
int n, m;
f >> n >> m;
for(int i = 1; i <= m; ++i){
int a, b;
f >> a >> b;
gr[a].push_back(b);
gr[b].push_back(a);
grad[a] ++;
grad[b] ++;
}
for(int i = 1; i <= n; ++i){
if(grad[i]&1 || grad[i] == 0){
g << -1;
return 0;
}
}
dfs(1);
return 0;
}