Pagini recente » Cod sursa (job #1213874) | Cod sursa (job #1726314) | Cod sursa (job #1964057) | Cod sursa (job #2896945) | Cod sursa (job #465839)
Cod sursa(job #465839)
#include <stdio.h>
#include <vector>
#define MAXN 100005
using namespace std;
vector<int> G[MAXN];
int ok[MAXN], c[MAXN], t[MAXN];
int i,N,M,x,y,nr,nod;
int main()
{
freopen("mesaj4.in","r",stdin);
freopen("mesaj4.out","w",stdout);
scanf("%d %d",&N,&M);
for (i=1; i<=M; ++i){
scanf("%d %d",&x,&y);
G[x].push_back(y);
G[y].push_back(x);
}
c[1] = 1; nr = 1; ok[1] = true;
for (i=1; i<=nr; ++i){
nod = c[i];
vector<int>::iterator it;
for (it=G[nod].begin(); it!=G[nod].end(); ++it)
if (!ok[*it]){
c[++nr] = *it;
ok[*it] = true;
t[nr] = i;
}
}
if (nr != N) {
printf("-1\n");
return 0;
}
printf("%d\n", N*2-2);
for (i=N; i>1; --i)
printf("%d %d\n", c[i], c[t[i]]);
for (i=2; i<=N; ++i)
printf("%d %d\n", c[t[i]], c[i]);
return 0;
}