codeforces 322 A Ciel and Dancing

题目链接

题意:

      有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;
}


posted @ 2013-06-29 09:27  xindoo  阅读(203)  评论(0编辑  收藏  举报