6506 - 山峰和山谷

FGD小朋友特别喜欢爬山,在爬山的时候他就在研究山峰和山谷。为了能够对旅程有一个安排,他想知道山峰和山谷的数量。给定一张地图,为FGD想要旅行的区域,地图被分为n*n的网格,每个格子(i,j)的高度w(i,j)是给定的。若两个格子有公共顶点,那么它们就是相邻的格子,如与(i,j)相邻的格子有(o-1,j-1),(i-1,j),(i-1,j+1),(i,j-1),(i,j+1),(i+1,j-1),(i+1,j),(i+1,j+1)。

我们定义一个格子的集合S为山峰(山谷)当且仅当:

(1)S所有的格子都有相同的高度。

(2)S的所有格子都连通。

(3)对于s属于S,与s相邻的s’不属于S,都有ws>ws’(山峰),或者ws<ws’(山谷)。你的任务是,对于给定的地图,求出山峰和山谷的数量,如果所有格子都有相同的高度,那么整这个地图既是山峰,又是山谷。

输入

第一行包含一个正整数n,表示地图的大小(1≤n≤1000)。接下来一个n*n的矩阵,表示地图上每个格子的高度。(0≤w≤1000000000)

输出

应包含两个数,分别表示山峰和山谷的数量。

样例

输入

5
8 8 8 7 7
7 7 8 8 7
7 7 7 7 7 
7 8 8 7 8 
7 8 8 7 8 
7 8 8 8 8

输出

2 1

输入

5
5 7 8 3 1
5 5 7 6 6 
6 6 6 2 8 
5 7 2 5 8 
7 1 2 1 7

输出

3 3

来源

一本通提高

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题