View Code of Problem 217

import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int r=scanner.nextInt();
		int c=scanner.nextInt();
		int[][] ints=new int[r][c];
		for(int i=0;i<r;i++) {
			for(int j=0;j<c;j++) {
				ints[i][j]=scanner.nextInt();
			}
		}
		
		for(int i=0;i<r;i++) {
			for(int j=0;j<c;j++) {
				
				dfs(ints, i, j, 1);
			}
		}
		System.out.println(max);
	
	}	
	
	private static int[][] next=new int[][] {{1,0},{0,1},{-1,0},{0,-1}};
	
	private static int max=0;
	
	public static void dfs(int[][] ints,int i,int j,int dis) {
		
		if(dis>max) {
			max=dis;
		}
		
		for(int t=0;t<4;t++) {
			int x=i+next[t][0];
			int y=j+next[t][1];
			if(x>=0&&x<ints.length&&y>=0&&y<ints[0].length&&ints[x][y]<ints[i][j]) {
				dis++;
				dfs(ints,x,y,dis);
				dis--;
			}
		}
	}

}

Double click to view unformatted code.


Back to problem 217