题目描述
沫璃有一个画板,画板可以抽象成有100
行每行100
个像素点的正方形。沫璃在画板上画画,她一共画了n
次,每次将一个矩形涂上颜色。沫璃想知道一共有多少个像素点被她涂过颜色。若一个像素点被涂了k
次,那么认为有k
个像素点被涂过颜色。
输入
第一行一个数T (T<=100)(T<=100),表示数据组数。
对于每组数据,第一行一个整数n , (1<=n<=100)(1<=n<=100)
接下来n行,每行4个整数x1,y1,x2,y2(1<=x1<=x2<=100,1<=y1<=y2<=100)x1,y1,x2,y2(1<=x1<=x2<=100,1<=y1<=y2<=100),表示矩形的两个对角所对应的像素点的坐标。
输出
对于每组数据,输出一行,表示沫璃一共涂了多少个像素点。
样例
in: 2 2 1 1 2 3 2 2 3 3 2 1 1 3 3 1 1 3 3 out: 10 18
解析
所画图的左上顶点(x1,y1)和右下顶点(x2,y2),相似个数=(|(x2-x1)|+1)*(|(y2-y1)|+1)
C语言编程
#include<stdio.h>
int main()
{
struct dian
{
int x;
int y;
};
int i,T;
int j;
int n;
int num=0;
struct dian a[2][1000];
scanf("%d\n",&T);
for(j=0;j<T;j++)
{
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
scanf("%d%d%d%d",&a[0][i].x,&a[0][i].y,&a[1][i].x,&a[1][i].y);
}
for(i=0;i<n;i++)
{
num=num+(abs(a[1][i].x-a[0][i].x)+1)*(abs(a[1][i].y-a[0][i].y)+1);
}
printf("%d\n",num);
num=0;
}
return 0;
}