Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<algorithm>
- using namespace std;
- int mx;
- int n,m;
- int a[1010][1010];
- int dp[1010][1010];
- int di[4]={0,0,1,-1};
- int dj[4]={1,-1,0,0};
- int solve(int i,int j){
- if(dp[i][j]!=-1) return dp[i][j];
- dp[i][j]=1;
- for(int k=0;k<4;k++){
- int x=i+di[k];
- int y=j+dj[k];
- if(x>=1 && x<=n && y>=1 && y<=m){
- if(a[x][y] - a[i][j] == 1)
- dp[i][j]= dp[i][j] + solve(x,y) ;
- }
- }
- // printf(" %d,%d : %d\n",i,j,dp[i][j]);
- return dp[i][j];
- }
- int main()
- {
- scanf("%d%d",&n,&m);
- for(int i=1;i<=n;i++){
- for(int j=1;j<=m;j++){
- scanf("%d",&a[i][j]);
- dp[i][j]=-1;
- }
- }
- for(int i=1;i<=n;i++){
- for(int j=1;j<=m;j++){
- mx=max(mx,solve(i,j));
- }
- }
- printf("%d",mx);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement