百练---肿瘤面积---2713

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;
}

你可能感兴趣的:(百练---肿瘤面积---2713)