2713:肿瘤面积
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其它肿瘤内和肿瘤外的点都用255表示。现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。已知肿瘤的边缘平行于图像的边缘。
输入
- 只有一个测试样例。第一行有一个整数n,表示正方形图像的边长。其后n行每行有n个整数,取值为0或255。整数之间用一个空格隔开。已知n不大于1000。 输出
- 输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。 样例输入
-
5 255 255 255 255 255 255 0 0 0 255 255 0 255 0 255 255 0 0 0 255 255 255 255 255 255
样例输出
-
1
#include<stdio.h> #include<stdlib.h> int main(){ int n,i,j; int a[101][101]; scanf("%d",&n); int xstart=n,ystart=n,xend=0,yend=0; for(i=0; i<n; i++){ for(j=0; j<n; j++){ scanf("%d",&a[i][j]); if(a[i][j] == 0){ if((i<xstart)||(j<ystart)){ xstart=i; ystart=j; } if((i>xend)||(j>yend)){ xend=i; yend=j; } } } } printf("%d\n",(xend-xstart-1)*(yend-ystart-1)); return 0; }