Pagini recente » Cod sursa (job #543020) | Cod sursa (job #918366) | Cod sursa (job #91948) | Cod sursa (job #1565250) | Cod sursa (job #2870841)
#include <fstream>
#include <vector>
#include <deque>
#include <algorithm>
#include <climits>
#include <iomanip>
#include <cmath>
#define MOD 666013
#define INT_MAX 1000000000
using namespace std ;
ifstream cin ("ciclueuler.in") ;
ofstream cout ("ciclueuler.out") ;
int n ;
vector<pair<int, int> > m[100009] ;
vector<int> rez ;
void ceuler(int nod)
{
while(m[nod].size())
if(m[nod].back().first != -1)
{
int nextnod = m[nod].back().first ;
int poz = m[nod].back().second ;
m[nod].pop_back() ;
m[nextnod][poz].first = -1 ;
ceuler(nextnod) ;
}else m[nod].pop_back() ;
rez.push_back(nod) ;
}
int main()
{
int q ;
cin >> n >> q ;
int qq = q ;
while(q --)
{
int a, b ;
cin >> a >> b ;
m[a].push_back({b, m[b].size()}) ;
m[b].push_back({a, m[a].size() - 1}) ;
}
for(int f = 1 ; f <= n ; f ++)
if(m[f].size() % 2)
{
cout << -1 ;
return 0 ;
}
ceuler(1) ;
for(int f = 0 ; f < rez.size() - 1 ; f ++)
cout << rez[f] << " " ;
return 0 ;
}
/// 1990