一位登山客現在爬到了山頂,眺望著附近的山頭,想要走到更高的山頂。
在這二維格子地圖上,每一個格子都有一個海拔高度 E_ij,所謂的平台(flat area)是指一塊八方向相連等高的格子們。而當一個平台相連的格子高度都比較低的時候,我們稱之為山頂(peak)。
請你寫一個程式,讀入海拔高度座標,找出所有的山頂,並且找出「從這個山頂經過某條路到達另一個更高的山頂,其必須經過的最低高度,最大值為何」。對於那些最高的山頂,我們以 0 表示之。
我們所謂的「更高」是嚴格的,也就是新的山頂真的必須更高才行。
一個輸入檔僅包含一筆測試資料。
測試資料的第一行有兩個正整數 M, N。接下來的 M 列每一列有 N 個正整數表示整個地圖。你可以假設地圖外的海拔高度都是 0 (海平面)。
至少佔總分 15% 以上的測資滿足 N<=2 或 M<=2
至少佔總分 50% 以上的測資滿足 P<=500
至少佔總分 80% 以上的測資滿足 P<=5000
佔總分 100% 的測資滿足 1<=N,M<=2000; N*M<=105。
請注意,範例測資有兩筆,但實際上一個輸入檔案只有一筆測試資料。
對於這筆測試資料,輸出的第一列是一個正整數 P,表示地圖上山頂的數量。接下來請將所有山頂的(高度、到達更高山頂所必經之最低高度)由大到小排序後輸出。若有多個相同高度的山頂,請將到達更高山頂所必經之最低高度由大到小輸出。
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
4 21 0 15 11 14 13 13 12 5 17 0 16 15 16 14 16 13 16 13
Migrated from old NTUJ.
BOI2012 Day1
No. | Testdata Range | Score |
---|