TopCoder

User's AC Ratio

NaN% (0/0)

Submission's AC Ratio

NaN% (0/0)

Tags

Description

一位登山客現在爬到了山頂,眺望著附近的山頭,想要走到更高的山頂。


在這二維格子地圖上,每一個格子都有一個海拔高度 E_ij,所謂的平台(flat area)是指一塊八方向相連等高的格子們。而當一個平台相連的格子高度都比較低的時候,我們稱之為山頂(peak)。


請你寫一個程式,讀入海拔高度座標,找出所有的山頂,並且找出「從這個山頂經過某條路到達另一個更高的山頂,其必須經過的最低高度,最大值為何」。對於那些最高的山頂,我們以 0 表示之。


我們所謂的「更高」是嚴格的,也就是新的山頂真的必須更高才行。

Input Format

一個輸入檔僅包含一筆測試資料。


測試資料的第一行有兩個正整數 M, N。接下來的 M 列每一列有 N 個正整數表示整個地圖。你可以假設地圖外的海拔高度都是 0 (海平面)。


至少佔總分 15% 以上的測資滿足 N<=2 或 M<=2

至少佔總分 50% 以上的測資滿足 P<=500

至少佔總分 80% 以上的測資滿足 P<=5000

佔總分 100% 的測資滿足 1<=N,M<=2000; N*M<=105


請注意,範例測資有兩筆,但實際上一個輸入檔案只有一筆測試資料。

Output Format

對於這筆測試資料,輸出的第一列是一個正整數 P,表示地圖上山頂的數量。接下來請將所有山頂的(高度、到達更高山頂所必經之最低高度)由大到小排序後輸出。若有多個相同高度的山頂,請將到達更高山頂所必經之最低高度由大到小輸出。

Sample Input 1

6 6
21 16 9 11 6 7
21 21 10 14 15 9
18 20 8 9 13 14
11 10 9 9 8 13
8 12 12 14 13 8
7 13 12 9 5 1
5 3
16 14 16
14 14 15
12 17 16
12 13 10
16 11 16

Sample Output 1

4
21 0
15 11
14 13
13 12
5
17 0
16 15
16 14
16 13
16 13

Hints

Problem Source

Migrated from old NTUJ.

BOI2012 Day1

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 200