View Code of Problem 17

import java.util.Scanner;

public class Main {


    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNext()){
            int n=scanner.nextInt();
            int m=scanner.nextInt();
            int[][] dis=new int[n][m];
            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                    dis[i][j]=scanner.nextInt();
                }
            }
            Main main=new Main();
            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                    main.dfs(dis,0,i,j);
                }
            }
            System.out.println(main.max);
        }
    }

    public int[][] location=new int[][]{{-1,0},{1,0},{0,-1},{0,1}};
    public long max=0;

    public  void dfs(int[][] s,int l,int r,int c){
        if(max<l){
            max=l;
        }
        for(int k=0;k<4;k++){
            int i=r+location[k][0];
            int j=c+location[k][1];
            if(i>=0&&j>=0&&i<s.length&&j<s[0].length&&s[i][j]>s[r][c]){
                dfs(s,l+1,i,j);
            }
        }
    }
}

Double click to view unformatted code.


Back to problem 17