Pagini recente » Cod sursa (job #658302) | Cod sursa (job #2097940) | Cod sursa (job #1506074) | Cod sursa (job #1181740) | Cod sursa (job #897733)
Cod sursa(job #897733)
# include <fstream>
# include <cstring>
# include <algorithm>
# include <vector>
# define dim 100005
# define pb push_back
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
struct euler
{
int nod, muchie;
};
vector < euler > A[ dim ];
bool viz[ 500005 ];
int N, M;
inline void df( int X )
{
int i;
for ( i = 0 ; i < A[ X ].size() ; ++i )
if ( viz[ A[ X ][ i ].muchie ] == 0 )
{
viz[ A[ X ][ i ].muchie ] = 1;
df( A[ X ][ i ].nod );
}
g << X << " ";
}
void citire()
{
int i, X , Y;
f >> N >> M;
for ( i = 1 ; i <= M ; i++ )
{
f >> X >> Y;
A[ X ].pb( ( euler ) { Y, i } );
A[ Y ].pb( ( euler ) { X, i } );
}
bool ok = 1;
for ( i = 1 ; i <= N && ok == 1 ; i++ )
{
if ( A[ i ].size() % 2 != 0 )
g << -1 << "\n", ok = 0;
}
if ( ok == 1 )
df( 1 );
}
int main()
{
citire();
return 0;
}