Pagini recente » Cod sursa (job #587088) | Cod sursa (job #2261611) | Cod sursa (job #38735) | Cod sursa (job #2522821) | Cod sursa (job #2452588)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
const int MAXN = 1e5 + 5;
vector <pair<int, int>> v[MAXN];
bool seen[MAXN];
int m;
void dfs(int node){
while(v[node].size()){
int current = v[node].back().first;
int indice = v[node].back().second;
v[node].pop_back();
if(!seen[indice]){
seen[indice] = true;
dfs(current);
}
}
if(m) fout << node << " " , m--;
}
int main(){
int n; fin >> n >> m;
for(int i = 1; i <= m; ++i){
int x, y; fin >> x >> y;
v[x].push_back({y, i});
v[y].push_back({x, i});
}
for(int i = 1; i <= n; ++i){
if(v[i].size() % 2){
fout << "-1";
return 0;
}
}
dfs(1);
return 0;
}