将不能直接相连的城市标记一下,以第一个不为1的城市为中心建路,每个城市都与这个城市直接相连,这样就能保证题目的条件了
#include<iostream>
#include<cstring>
using namespace std;
int road[1010];
int main(){
int n,m;
while(cin>>n>>m){
memset(road,0,sizeof(road));
while(m--){
int a,b;
cin>>a>>b;
road[a]=1;
road[b]=1;
}
cout<<n-1<<endl;
int flag;
for(int i=1;i<=n;i++)
if(road[i]!=1){
flag=i;
break;
}
for(int i=1;i<=n;i++){
if(i!=flag){
cout<<i<<' '<<flag<<endl;
}
}
}
}