登山(Climbing.pas/c/cpp)

Grade 0 Open Time Friday, 5 October 2012, 3:20 pm
Discount 0.8 Time Discount Friday, 5 October 2012, 3:20 pm
Allow late Yes Close Time Friday, 5 October 2012, 3:20 pm
Input file climbing.in Output file climbing.out

题目描述

新兵们喜欢组织一起出去登山。尤其喜欢跑到山上又跑下来。。。(他们吃多了)他们享受这样跑上跑下的运动。。。

从山上下来为了获得速度,能够跑得更快,跑下来时的区域必须向下倾斜,而且当你跑到山底,你不得不再次走上坡。所以想知道载一个区域中最长的滑坡。

   区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:

   1  2  3  4 5

  16 17 18 19 6

  15 24 25 20 7

  14 23 22 21 8

  13 12 11 10 9

  新兵可以从某个点跑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可跑的路线为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。

输入数据

   第一行表示区域的行数R和列数C(1 <= R,C <= 500)。下面是R行,每行

C个整数,代表高度h0<=h<=500*500 

输出数据

   输出最长区域的长度。

样例输入

5 5

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

样例输出

25