互联网公司面试题之十

问题:Sun同学是考研大军之中的一员,他每天过着三点一线的生活。学校里面有一个公告栏,他每天都看到上面张贴着各种考研海报。Sun同学提出一个问题:公告栏上还有多少空白区域是没有被考研海报粘贴过的呢?请你帮他完成这样一个程序,计算没有张贴过海报的面积。

注意:
公告栏左上角是坐标原点(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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值