Pagini recente » Cod sursa (job #3205170) | Cod sursa (job #2449691) | Cod sursa (job #1973520) | Cod sursa (job #287862) | Cod sursa (job #587859)
Cod sursa(job #587859)
# include <cstdio>
# include <vector>
using namespace std ;
# define x first
# define y second
const char *FIN = "mesaj4.in", *FOU = "mesaj4.out" ;
const int MAX = 100005 ;
vector < int > A[MAX] ;
pair <int, int> sol[MAX] ;
bool viz[MAX] ;
int N, M ;
void solve (int a) {
viz[a] = 1 ;
for ( int i = 0, j = A[a].size (); i < j; ++i ) {
if ( viz[ A[a][i] ] == 0 ) {
sol[ ++sol[0].x ].x = a, sol[ sol[0].x ].y = A[a][i] ;
solve (A[a][i]) ;
}
}
}
int main ( void ) {
freopen (FIN, "r", stdin) ;
freopen (FOU, "w", stdout) ;
scanf ( "%d %d", &N, &M ) ;
for ( int i = 1, x, y; i <= M; ++i ) {
scanf ( "%d %d", &x, &y ) ;
A[x].push_back (y), A[y].push_back (x) ;
}
solve (1) ;
if (sol[0].x != N - 1) {
printf ( "-1" ) ;
} else {
printf ( "%d\n", 2 * N - 2 ) ;
for ( int i = N - 1; i > 0; --i ) {
printf ( "%d %d\n", sol[i].y, sol[i].x ) ;
}
for ( int i = 1; i < N; ++i ) {
printf ( "%d %d\n", sol[i].x, sol[i].y ) ;
}
}
}