#2375. 巡山

巡山

题目描述

唐僧师徒一路西行,快要到狮驼岭。狮驼岭的青狮、白象、大鹏三位大王听说唐僧快到非常开心,摩拳擦掌,准备捉了唐僧。

为了能够顺利捉到唐僧,大王们交代小旋风,附近的每座山的山顶都要安排小妖在山顶巡视,随时注意唐僧师徒的行踪。

小旋风立刻拿来了狮驼岭附近山丘的地图,这张地图是一个 N x M 的矩阵,矩阵第i行第j列用一个整数 A~ij~~ ~表示该位置的高度。

从某位置开始向其所有相邻的位置能延伸到的,所有不超过当前位置高度的位置构成一座山,一座山中高度的最大值是山顶。(相邻的定义是某位置周边8个点认和该点相邻)

如果某位置在地图的边界上,默认该点的高度一定是大于边界外的高度。

请你编程帮助小旋风计算出,小旋风需要派出多少小妖在山顶巡视。

请注意:同一座山如果有多个相邻位置都可以作为山顶,那么这座山只需要派出1个小妖在其中一个山顶巡视就可以了。

输入格式

第1行读入 N,M 表示地图的大小。

接下来 N 行,每行有 M 个空格隔开的整数,表示该位置的高度。

输出格式

输出一个整数,代表需要派出小妖的数量。

样例

8 7 
4 4 2 2 1 0 1 
3 4 3 2 1 0 1 
2 2 2 2 1 0 1 
2 1 1 1 1 0 0 
1 1 0 0 0 1 0 
0 0 0 1 1 1 0 
0 1 2 2 1 1 0 
0 1 1 1 2 1 0
3

解释#1

三座山的山顶,在下图中,通过红色加粗表示。

数据范围

  • 对于 100%100\% 的测试数据满足:1N,M7001≤N,M≤7000Aij1040≤Aij≤10^4