问题:Sun同学是考研大军之中的一员,他每天过着三点一线的生活。学校里面有一个公告栏,他每天都看到上面张贴着各种考研海报。Sun同学提出一个问题:公告栏上还有多少空白区域是没有被考研海报粘贴过的呢?请你帮他完成这样一个程序,计算没有张贴过海报的面积。
注意:
公告栏左上角是坐标原点(0,0),公告栏长宽相等。
数据有多组,每组输入公告栏长度n(0<n<=100)。
海报张数m(0<m<=100),以及每张海报的左上角坐标(x1,y1)和右下角坐标(x2,y2)。
注意:其中坐标有可能小于0,大于n,但在int范围内。
答:代码实现如下:
运行结果:
[img]http://dl.iteye.com/upload/attachment/612648/d70b773f-8040-3358-984c-4d6a268124e3.jpg[/img]
注意:
公告栏左上角是坐标原点(0,0),公告栏长宽相等。
数据有多组,每组输入公告栏长度n(0<n<=100)。
海报张数m(0<m<=100),以及每张海报的左上角坐标(x1,y1)和右下角坐标(x2,y2)。
注意:其中坐标有可能小于0,大于n,但在int范围内。
答:代码实现如下:
i,j,t,x,y,w,z,c,a[100][100]={0,};
main(n,m){
for(;~scanf("%d%d",&n,&m);){
for(t=0;t<m;++t) {
scanf("%d%d%d%d",&x,&y,&w,&z);
x=x<0?0:x; x=x>n?n:x;
y=y<0?0:y; y=y>n?n:y;
w=w<0?0:w; w=w>n?n:w;
z=z<0?0:z; z=z>n?n:z;
for(i=w-1;i>=x;--i)
for(j=z-1;j>=y;--j) a[i][j]=1;
}
for(c=i=0;i<n;++i)
for(j=0;j<n;++j) if(!a[i][j]) ++c;
printf("%d\n",c);
for(i=0;i<n;++i)
for(j=0;j<n;++j) a[i][j]=0;
}
}
运行结果:
[img]http://dl.iteye.com/upload/attachment/612648/d70b773f-8040-3358-984c-4d6a268124e3.jpg[/img]