#P9078. 棋盘积水

棋盘积水

题目描述

皮皮喜欢玩各种各样的积木,他有一个 nnmm列的棋盘,棋盘的每一格都是正方形,皮皮用很多正方体积木在棋盘上搭建了一个“城堡”,其中皮皮在棋盘第i行第j列的格子中放了 ai,ja_{i,j} 个方块,因此这一格的高度为 ai,ja_{i,j}

昨晚下了一场小雨,皮皮忘记把积木收回来,因此棋盘中出现了一些积水,具体来说,如果一个区域周围的高度比区域内部更高,水就无法流出来,就会残留在棋盘上。

如果皮皮的棋盘中每个格子的高度(指积木数量)如左图所示,那么棋盘的积水深度如下图:

图中蓝色部分为积水面积,颜色代表积水的深度,整个棋盘共积水 1616 个单位(一个正方体积木的体积看做一个单位) 。 给定皮皮搭建的“城堡”,请找出所有可能积水的地方(图中蓝色部分),统计它们积水的体积总和(换算成正方体积木的体积)。

输入格式

输入第1行,两个整数 nnmm,表示棋盘的行列。

第22到 n+1n+1 行,每行 mm 个非负整数,表示对应格子上放的积木数量。

输出格式

一个数字,表示积水的总体积。

输入样例1

5 5
5 3 4 3 4
4 0 1 0 5
1 4 2 0 3
5 1 3 0 4
0 2 5 3 5

输出样例1

16

输入样例2

4 5
1 1 1 1 1
1 0 1 0 0
1 0 1 0 1
1 1 1 1 1

输出样例2

2

输入样例3

12 10
6 1 1 1 5 1 1 3 7 3
4 1 4 3 4 3 7 5 5 5
2 4 1 1 1 7 0 7 7 5
1 3 2 3 0 5 1 0 7 0
3 4 4 3 3 7 3 7 2 0
3 5 3 3 0 1 5 0 5 8
1 4 0 3 1 0 5 1 0 5
3 0 5 3 2 2 5 6 1 5
5 2 5 2 5 5 2 0 1 5
4 1 5 1 3 1 6 2 3 5
4 5 5 5 5 5 5 5 5 5
5 3 2 1 1 5 0 0 1 0

输出样例3

87

数据范围

1n,m500,0ai,j1091 \leq n,m \leq 500, 0 \leq a_{i,j} \leq 10^9