#715. 稳定窗口

稳定窗口

题目描述

小杨获得了一张 nnmm 列的山地高度图,第 ii 行第 jj 列的整数表示位置 (i,j)(i,j) 的高度。

他要在高度图中选择一个恰好为 3333 列的矩形区域。对于一个候选区域,记其中最大高度为 mxmx,最小高度为 mnmn。若 mxmnmx-mn 不超过给定整数 HH,则称该区域为稳定窗口。

在所有稳定窗口中,小杨希望选择九个位置高度之和最大的一个。若有多个稳定窗口的高度和相同,优先选择左上角行号较小的;若行号仍相同,优先选择左上角列号较小的。

输入格式

第一行输入三个整数 nmHn、m、H,相邻整数之间用一个空格分隔。 接下来 nn 行,每行输入 mm 个整数,表示高度图。

输出格式

若不存在稳定窗口,输出一行字符串 NONE。 否则输出一行三个整数:最大高度和、所选窗口左上角的行号、列号,相邻整数之间用一个空格分隔。行号和列号均从 11 开始。

样例

4 5 2
1 2 2 9 9
2 3 2 9 9
1 2 1 9 9
8 8 8 9 9
16 1 1
2 4 10
1 2 3 4
5 6 7 8
NONE

样例解释

样例 11 中,左上角为 (1,1)(1,1)3×33×3 区域最大高度为 33,最小高度为 11,高度差为 22,且九个位置高度之和为 1616。其他 3×33×3 区域均不满足稳定条件,因此输出 16 1 1

样例 22 的高度图不足 33 行,不能选出 3×33×3 区域,因此输出 NONE

数据范围

  • 1n,m1000H20001 ≤ n,m ≤ 100;0 ≤ H ≤ 2000
  • 每个位置的高度为 1000-100010001000 之间的整数。
  • 数据保证所有整数均可由 int 保存;高度和可使用 intlong long 计算。