题意:
有n个男孩和m个女孩,他们要结对跳舞,每对要有一个女孩和一个男孩,而且其中一个要求之前没有和其他人结对,求出最大可以结多少对。
如图,一条线代表一对,只有这样三种情况。
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main()
{
int n, m;
while (cin >> n >> m)
{
int mn = min(n, m);
int k = (mn<<1) - 1;
k += (max(n, m) - mn);
int a = 1, b = 1;
cout << k << endl;
int i = 1;
int t= 0;
for (; i < mn; i++)
{
printf("%d %d\n", i, i);
printf("%d %d\n", i, i+1);
t = i;
}
t++;
for (;i <= max(n, m); i++)
{
if (n <= m)
printf("%d %d\n", t, i);
else
printf("%d %d\n", i, t);
}
}
return 0;
}