ZOJ-1804
来源:互联网 发布:怎样申请淘宝店铺 编辑:程序博客网 时间:2024/05/16 10:55
蛋疼无比的推箱子模拟题,又写了我好久。。代码又烂又长,还好一次A了。。
#include<stdio.h>#include<string.h>static int h, w, a[20][20];static int min(int aa, int bb){return aa < bb ? aa : bb;}static int maxr(){int i, j, res = 0, sum;for (i = 0; i < h; i++){sum = 0;for (j = 0; j < w; j++)if (a[i][j])sum++;if (sum > res)res = sum;}return res;}static int maxc(){int i, j, res = 0, sum;for (j = 0; j < w; j++){sum = 0;for (i = 0; i < h; i++)if (a[i][j])sum++;if (sum > res)res = sum;}return res;}static void move(char *s, int m){int i, j;if (strcmp(s, "down") == 0){m = min(h - maxc(), m);for (j = 0; j < w; j++){int total = 0;for (i = 0; i < m; i++)if (a[i][j]){total++;a[i][j] = 0;}if (total){int empty = 0;for (i = m; i < h; i++){if (a[i][j])total++;empty++;a[i][j] = 1;if (empty == total)break;}}}}else if (strcmp(s, "left") == 0){m = min(w - maxr(), m);for (i = 0; i < h; i++){int total = 0;for (j = w - m; j < w; j++)if (a[i][j]){total++;a[i][j] = 0;}if (total){int empty = 0;for (j = w - m - 1; j >= 0; j--){if (a[i][j])total++;empty++;a[i][j] = 1;if (empty == total)break;}}}}else if (strcmp(s, "up") == 0){m = min(h - maxc(), m);for (j = 0; j < w; j++){int total = 0;for (i = h - m; i < h; i++)if (a[i][j]){total++;a[i][j] = 0;}if (total){int empty = 0;for (i = h - m - 1; i >= 0; i--){if (a[i][j])total++;empty++;a[i][j] = 1;if (empty == total)break;}}}}else{m = min(w - maxr(), m);for (i = 0; i < h; i++){int total = 0;for (j = 0; j < m; j++)if (a[i][j]){total++;a[i][j] = 0;}if (total){int empty = 0;for (j = m; j < w; j++){if (a[i][j])total++;empty++;a[i][j] = 1;if (empty == total)break;}}}}}static void print(int c){int i, j;printf("Data set %d ends with boxes at locations", c);for (i = 0; i < h; i++)for (j = 0; j < w; j++)if (a[i][j])printf(" (%d,%d)", i, j);puts(".");}int main(){int count = 1;while (scanf("%d %d", &h, &w), h || w){int n, i, ri, ci;scanf("%d", &n);memset(a, 0, sizeof(a));for (i = 0; i < n; i++){scanf("%d %d", &ri, &ci);a[ri][ci] = 1;}char s[10];int m;while (scanf("%s", s), strcmp(s, "done")){scanf("%d", &m);move(s, m);}print(count++);}return 0;}
0 0
- ZOJ-1804
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ios 画板
- 高级 NFC
- DevExpress.Net框架库解析(1):DevExpress框架库简介
- Timus : 1002. Phone Numbers 题解
- Java中重载与复写的区别、super与this的比较
- ZOJ-1804
- 如何有效申请TI的免费样片
- 黑马程序员--Java基本语法
- PP助手安装ipa文件显示"Install Prohibited"安装失败解决办法
- C++ Vector用法深入剖析
- POJ1298 The Hardest Problem Ever
- hdu-1517 A Multiplication Game
- HDU 3727 Jewel
- 第三章:什么是组织结构