#include<iostream> #include<vector> #include<string> #include<algorithm> #include<bits/stdc++.h> using namespace std; int arr[1000][1000]; int res = 0; void walk( int i,int j,int num) { if (arr[i + 1][j] > arr[i][j])walk(i + 1, j, num + 1); if (arr[i - 1][j] > arr[i][j])walk(i - 1, j, num + 1); if (arr[i][j+1] > arr[i][j])walk(i , j+1, num + 1); if (arr[i][j-1] > arr[i][j])walk(i , j-1, num + 1); if (num > res) { res = num; } } int main() { int n, m; while (cin >> n >> m) { memset(arr, 0, sizeof(arr)); res = 0; for(int i=1;i<=n;i++){ for (int j = 1; j <= m; j++) { cin >> arr[i][j]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { walk( i, j, 0); } } cout << res << endl; } return 0; } |
Double click to view unformatted code.