Pagini recente » Cod sursa (job #425004) | Cod sursa (job #2369283) | Cod sursa (job #1163895) | Cod sursa (job #1504213) | Cod sursa (job #1141722)
#include <cstdio>
#include <vector>
#define NMax 100002
using namespace std;
vector<long> v[NMax], sol;
long x, y, n, m;
void deleteEdge ( long x, long y ) {
v[x].pop_back ( );
for ( vector<long>::iterator i = v[y].begin ( ); i != v[y].end ( ); i++ )
if ( *i == x ) {
v[y].erase ( i );
return;
}
}
void CCEuler ( long now ) {
long next;
while ( !v[now].empty ( ) ) {
next = v[now].back ( );
deleteEdge ( now, next );
CCEuler ( next );
}
sol.push_back ( now );
}
int main()
{
freopen ( "ciclueuler.in", "r", stdin );
freopen ( "ciclueuler.out", "w", stdout );
scanf ( "%ld %ld", &n, &m );
for ( long i = 1; i <= m; i++ ) {
scanf ( "%ld %ld", &x, &y );
v[x].push_back ( y );
v[y].push_back ( x );
}
CCEuler ( 1 );
sol.pop_back ( );
for ( long i = 0; i < sol.size ( ); i++ )
printf ( "%ld ", sol[i] );
return 0;
}