Pagini recente » Cod sursa (job #1066153) | Cod sursa (job #1319815) | Cod sursa (job #533581) | Cod sursa (job #2904716) | Cod sursa (job #1132993)
#include <iostream>
#include <vector>
#include <utility>
#include <array>
#define F first
#define S second
using namespace std;
vector< vector< array<int, 3> > > v;
int ansPos = 0;
int ans[500000];
void f(int x) {
for(int i = 0; i < v[x].size(); ++i) {
if(!v[x][i][2]) {
v[x][i][2] = 1;
v[v[x][i][0]][v[x][i][1]][2] = 1;
f(v[x][i][0]);
}
}
ans[ansPos] = x;
++ansPos;
}
int main() {
ios_base::sync_with_stdio(0);
int n,m;
cin>>n>>m;
v.resize(n);
for(int i = 0; i < m; ++i) {
int a,b;
cin>>a>>b;
--a,--b;
array<int, 3> ar;
if(a == b) {
//v[a].push_back(make_pair(b, make_pair(v[b].size()+1, 0)));
//v[b].push_back(make_pair(a, make_pair(v[a].size()-1, 0)));
ar[0] = b;
ar[1] = v[b].size()+1;
ar[2] = 0;
v[a].push_back(ar);
ar[0] = b;
ar[1] = v[b].size()-1;
ar[2] = 0;
v[b].push_back(ar);
}
else {
ar[0] = b;
ar[1] = v[b].size();
ar[2] = 0;
v[a].push_back(ar);
ar[0] = b;
ar[1] = v[b].size()-1;
ar[2] = 0;
v[b].push_back(ar);
}
}
/*
for(int i =0; i < n; ++i) {
for(int j = 0; j < v[i].size(); ++j) {
cout<<v[i][j].F+1<<' '<<v[i][j].S.F<<'*';
}
cout<<'\n';
}
*/
for(int i =0 ; i < n; ++i) {
if(v[i].size()&1) {
cout<<-1<<'\n';
return 0;
}
}
//f(0);
for(int i = 0; i < ansPos; ++i) {
cout<<ans[i]+1<<' ';
}
cout<<'\n';
}