[ 9.11 ]CF每日一題系列—— 441C暴力模擬
阿新 • • 發佈:2018-09-12
模擬 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暴力模擬