Internet公司面试题之十
互联网公司面试题之十
问题:Sun同学是考研大军之中的一员,他每天过着三点一线的生活。学校里面有一个公告栏,他每天都看到上面张贴着各种考研海报。Sun同学提出一个问题:公告栏上还有多少空白区域是没有被考研海报粘贴过的呢?请你帮他完成这样一个程序,计算没有张贴过海报的面积。
注意:
公告栏左上角是坐标原点(0,0),公告栏长宽相等。
数据有多组,每组输入公告栏长度n(0<n<=100)。
海报张数m(0<m<=100),以及每张海报的左上角坐标(x1,y1)和右下角坐标(x2,y2)。
注意:其中坐标有可能小于0,大于n,但在int范围内。
答:代码实现如下:
运行结果:
问题: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; } }
运行结果: