/*
【题意】
对于一个100*100棋盘,进行下列三种操作
BLACK x y l 将(x,y)为左上角,边长为l的正方形涂黑
WHITE x y l 将(x,y)为左上角,边长为l的正方形涂白
TEST x y l 问(x,y)为左上角,边长为l的正方形有多少个黑色格子
【输入】
第一行一个数字t,表示操作次数
接下来每行一个命令
【输出】
每行回答一次TEST询问
*/
#include <stdio.h>
#include<string.h>
int grid[101][101]={0};//初始化所有grid网格为白色,用0表示
int fact(int x,int y,int l)//计算出所有黑网格的数量
{
int black=0;
int i,j;
for(i=x;i<=x+l-1;i++)
for(j=y;j<=y+l-1;j++)
{
if(grid[i][j])
black++;
}
return black;
}
int main()
{
int test,x,y,l,bnum=0;
int i,j;
char color[10];
scanf("%d",&test);
while(test--)
{
scanf("%s%d%d%d",color,&x,&y,&l);
for(i=x;i<=x+l-1;i++)
for(j=y;j<=y+l-1;j++){
if(!strcmp(color,"WHITE")){
grid[i][j]=0;
}
else if(!strcmp(color,"BLACK")){
grid[i][j]=1;
}
}
if(!strcmp(color,"TEST")){
printf("%d\n",fact(x,y,l));
}
}
return 0;
}
北大ACM poj1656 Counting Black
最新推荐文章于 2017-10-11 13:23:34 发布