Pagini recente » Cod sursa (job #3000161) | Cod sursa (job #2091881) | Cod sursa (job #1865361) | Cod sursa (job #2604691) | Cod sursa (job #2571080)
#include <bits/stdc++.h>
#define NMAX 100005
using namespace std;
ofstream fout ("ciclueuler.out");
struct A
{
int dest, ind;
};
vector < A > v[NMAX];
bitset < 5 * NMAX > viz;
void dfs ( int nod );
int main()
{
int n, m, i, x, y;
freopen ( "ciclueuler.in", "rt", stdin );
scanf ( " %d %d \n ", &n, &m );
for ( i = 1 ; i <= m ; i++ )
{
scanf ( " %d %d \n ", &x, &y );
v[x].push_back ( { y, i } );
v[y].push_back ( { x, i } );
}
for ( i = 1 ; i <= n ; i++ )
if ( v[i].size() % 2 == 1 )
{
fout << -1;
return 0;
}
dfs ( 1 );
return 0;
}
void dfs ( int nod )
{
vector < A > :: iterator it;
A x;
for ( it = v[nod].begin() ; it != v[nod].end() ; it++ )
{
x = *it;
if ( viz[x.ind] == 0 )
{
viz[x.ind] = 1;
dfs ( x.dest );
}
}
fout << nod << ' ';
}