题目:Counting Black
来源:互联网 发布:管家婆软件打印机设置 编辑:程序博客网 时间:2024/05/16 06:37
Counting Black
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)
Total Submission(s) : 7 Accepted Submission(s) : 5
Problem Description
There is a board with 100 * 100 grids as shown below. The left-top gird is denoted as (1, 1) and the right-bottom grid is (100, 100).
We may apply three commands to the board:
In the beginning, all the grids on the board are white. We apply a series of commands to the board. Your task is to write a program to give the numbers of black grids within a required region when a TEST command is applied.
We may apply three commands to the board:
1.WHITE x, y, L // Paint a white square on the board, // the square is defined by left-top grid (x, y) // and right-bottom grid (x+L-1, y+L-1)2.BLACK x, y, L // Paint a black square on the board, // the square is defined by left-top grid (x, y) // and right-bottom grid (x+L-1, y+L-1)3.TEST x, y, L // Ask for the number of black grids // in the square (x, y)- (x+L-1, y+L-1)
In the beginning, all the grids on the board are white. We apply a series of commands to the board. Your task is to write a program to give the numbers of black grids within a required region when a TEST command is applied.
Input
The first line of the input is an integer t (1 <= t <= 100), representing the number of commands. In each of the following lines, there is a command. Assume all the commands are legal which means that they won't try to paint/test the grids outside the board.
Output
For each TEST command, print a line with the number of black grids in the required region.
Sample Input
5BLACK 1 1 2BLACK 2 2 2TEST 1 1 3WHITE 2 1 1TEST 1 1 3
Sample Output
76
Source
PKU
代码:
#include<stdio.h>
#include<string.h>
int main()
{ int x,y,l;
int a[100][100],sum,i,j;
char str[7];
for(i=0;i<100;i++)
{ for(j=0;j<100;j++)
{ a[i][j]=0; }
}
int N;sum=0;
scanf("%d",&N);
while(N--)
{ scanf("%s%d%d%d",&str,&x,&y,&l);
if(strcmp("TEST",str)==0)
{ sum=0;
for(i=x-1;i<=x+l-2;i++)
{ for(j=y-1;j<=y+l-2;j++)
if(a[i][j]==1) sum++;
}
printf("%d\n",sum);
}
else if(strcmp("BLACK",str)==0)
{
for(i=x-1;i<=x+l-2;i++)
{ for(j=y-1;j<=y+l-2;j++)
a[i][j]=1 ;
}
}
else if(strcmp(str,"WHITE")==0)
{
for(i=x-1;i<=x+l-2;i++)
{ for(j=y-1;j<=y+l-2;j++)
a[i][j]=0 ;
}
}
}
return 0;
}
#include<string.h>
int main()
{ int x,y,l;
int a[100][100],sum,i,j;
char str[7];
for(i=0;i<100;i++)
{ for(j=0;j<100;j++)
{ a[i][j]=0; }
}
int N;sum=0;
scanf("%d",&N);
while(N--)
{ scanf("%s%d%d%d",&str,&x,&y,&l);
if(strcmp("TEST",str)==0)
{ sum=0;
for(i=x-1;i<=x+l-2;i++)
{ for(j=y-1;j<=y+l-2;j++)
if(a[i][j]==1) sum++;
}
printf("%d\n",sum);
}
else if(strcmp("BLACK",str)==0)
{
for(i=x-1;i<=x+l-2;i++)
{ for(j=y-1;j<=y+l-2;j++)
a[i][j]=1 ;
}
}
else if(strcmp(str,"WHITE")==0)
{
for(i=x-1;i<=x+l-2;i++)
{ for(j=y-1;j<=y+l-2;j++)
a[i][j]=0 ;
}
}
}
return 0;
}
- 题目:Counting Black
- POJ 1656 Counting Black
- PKU 1656 Counting black
- poj 1656 Counting Black
- POJ 1656 Counting Black
- poj 1656 Counting Black
- poj 1656 Counting Black
- poj_1656 Counting Black
- hdu_1166 Counting Black
- POJ-1565-Counting Black
- poj1656 Counting Black
- poj 1656 Counting Black
- poj 1656 Counting Black
- poj 1656 Counting Black
- POJ 1656 Counting Black
- 1656:Counting Black
- Counting Black --- 暴力做法
- Poj 1656 Counting Black
- 黑马程序员__高新技术1
- 重构笔记(三)——eclipse的支持
- 经典ORACLE面试题目
- android四大组件之Activity
- 美国副国务卿本月16日至17日将访华-亚太局势-中日关系-钓鱼岛问题
- 题目:Counting Black
- c++ win32工程使用MFC类
- Is It A Tree?(并查集)
- Linux简单介绍
- io_service
- android四大组件之Service
- 苹果面试8大难题及答案
- Emacs:神的编辑器还是人的编辑器?
- 2012-10-14 ant工具的使用