Pagini recente » Cod sursa (job #78454) | Cod sursa (job #80502) | Cod sursa (job #1370320) | Cod sursa (job #1113505) | Cod sursa (job #2822852)
#include <bits/stdc++.h>
#define DAU ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define PLEC return 0;
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
#define cin fin
#define cout fout
#define N 500005
vector < vector < int > > g;
int v[N], st, dr, i, x, y, k, n, m, ind, grad[N];
void fa(int x)
{
for(int i = 0 ; i < g[x].size() ;)
{
int t = g[x][i];
for(int j = 0 ; j < g[t].size() ; j++)
{
if(g[t][j] == x)
{
g[t].erase(g[t].begin()+j);
break;
}
}
g[x].erase(g[x].begin()+i);
fa(t);
}
v[++st] = x;
}
int main()
{
DAU
cin >> n >> m;
g.resize(n+5);
for( ; m ; m--)
{
cin >> x >> y;
grad[x]++;
grad[y]++;
g[x].push_back(y);
g[y].push_back(x);
}
for(int i = 1 ; i <= n ; i++)
{
if(grad[i]%2 == 1)
{
cout << "-1";
PLEC
}
}
fa(1);
for(int i = st ; i > 1 ; i--)cout << v[i] << " ";
PLEC
}