题目链接:Codeforces 330B Road Construction
m < n / 2,所以必然有一个节点与所有边都相连(画出来的。。),所以边数就是n - 1。
#include<iostream>
#include <cstring>
using namespace std;
bool e[1001];
int main(){
int n,m;
int x,y;
memset(e,0,sizeof(e));
cin >> n >> m;
int i;
for (i = 0; i < m; i++)
{
cin >> x >> y;
e[x] = e[y] = true;
}
for (i = 1; i <= n; i++)
if (!e[i])
break;
cout << n -1 << endl;
for (int j = 1; j <= n; j++)
if (i != j) cout << j << " " << i <<endl;
}