【题目背景】
WZK喜欢旅游,因此,WZK去过很多很多美丽的地方,西双版纳,大理,九寨沟,黄龙,张家界,天涯海角„„
WZK发现,旅游景点普遍都有山水,山水萦绕,或朦胧悠远,或壮丽秀美,山水交织,总能有一翻绝伦的景致的!
不过WZK也发现,在这个虚假宣传泛滥的年代„„很多地方并不是像宣传画上说的那么漂亮的——比如——我可以把常州的横山说的像雁荡山那么漂亮——不过你到了之后才发现不过一座小山(当然,说小土坡WZK也不反对)——哪里能和祖国东南丘陵的大好山川相媲美呢?
好在,WZK知道如何利用Google Map对景点进行测试!Google Map是Google Web2.0的经典应用,有的时候,你甚至可以在Google Map上找到你的家的位置 。不过——不管怎么精确的卫星——毕竟没军用的那么强大,精确度总是有缺陷的——但至少,告诉你一个小的矩形区域的高度还是没有问题的——如果把目标区域划分成NM的小区域,那么你可以知道每个小区域的高度。
不过„„由于景点的区域实在太大了,WZK对于google Map提供的硕大的地图感到很头疼,你能帮他么?
他需要你找出地图中所有的山峰了,湖泊。
WZK对湖泊和山峰的定义是这样的:
众所周知,水往低处流,WZK心中的湖泊还是一平如镜的,因此湖泊必然是一块连通的并且高度都相同区域,并且,这个区域的高度比其周围部分的高度都要低。
山峰的定义也是类似,WZK认为山峰一定是最高的,因此山峰必然是是一块连通的并且高度都相同区域,并且,这个区域的高度比其周围部分的高度都要高。
这里的周围指的是有边相邻的格子(对角的格子不算)。
WZK希望知道湖泊和山峰的个数,以便于对这个景点的优美程度进行估价。
显然一块大平地不会成为景点——因此不会出现每个小区域高度都相同的情况的。
好了现在轮到你了。
【问题描述】
给出NM格的每格的高度信息,求出湖泊个数和山峰个数。#
Input
第一行两个整数N,M。
接着N行,每行有M个数字,表示高度信息,之间用一个空格隔开。
Output
输出一行两个整数,分别表示湖泊个数和山峰个数,之间用一个空格隔开。
50
#include<cstdio>
int shan,shui,n,m,a[1010][1010],fx[5]={
-1,+1},fy[5]={
0,0,-1,+1};
bool b