1. 程式人生 > >[ 9.11 ]CF每日一題系列—— 441C暴力模擬

[ 9.11 ]CF每日一題系列—— 441C暴力模擬

模擬 brush include 都是 sharp 地圖 iostream bre highlight

Description:

  n * m 的地圖,建設k個管道管道只能橫豎走,且長度大於等於2,問你任意一種建設方法

Solution:
  圖裏沒有障礙,所以先把前k - 1個管道每個分2個長度,最後一個管道一連到底

Code:

PS:今天時間沒來的急,其實函數可以封裝一下的,雖然都是暴力,但也得暴力的優美不是??

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    int n,m,k;
    while(~scanf("%d%d%d",&n,&m,&k))
    {
        int all = n * m;
        int num = 0;
        int i = 1;
        int x = 1;
        int y = 1;
        while(x <= n && y <= m)
        {
            while(y <= m)
            {
                if(i < k && num == 0)
                {
                    printf("%d %d %d",2,x,y);
                    ++num;
                }
                else if(i < k && num == 1)
                {
                    printf(" %d %d\n",x,y);
                    num = 0;
                    ++i;
                }
                else if(i == k)
                {
                    ++i;
                    printf("%d %d %d",all - k * 2 + 2,x,y);
                }
                else if(i > k)
                {
                    printf(" %d %d",x,y);
                }
                y++;
            }
            y--;
            x++;
            if(x > n)break;
            while(y >= 1)
            {
                if(i < k && num == 0)
                {
                    printf("%d %d %d",2,x,y);
                    ++num;
                }
                else if(i < k && num == 1)
                {
                    printf(" %d %d\n",x,y);
                    num = 0;
                    ++i;
                }
                else if(i == k)
                {
                    ++i;
                    printf("%d %d %d",all - k * 2 + 2,x,y);
                }
                else if(i > k)
                {
                    printf(" %d %d",x,y);
                }
                y--;
            }
            y++;x++;
        }
        printf("\n");
    }
    return 0;
}

[ 9.11 ]CF每日一題系列—— 441C暴力模擬