Moss345512 @ 2024-10-12 20:31:28
#include<cstdio>
int n,m,s[105][105],dp[105][105],ans;
int addx[4]={1,-1,0,0},addy[4]={0,0,-1,1};
int main(){
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&s[i][j]);
for(int t=1;t<=n*m;t++){
int ti,tj,maxn=0;
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(!dp[i][j] && s[i][j]>maxn)maxn=s[i][j],ti=i,tj=j;
maxn=0;
for(int i=0;i<4;i++)if(dp[ti+addx[i]][tj+addy[i]]>maxn && s[ti+addx[i]][tj+addy[i]]>s[ti][tj])maxn=dp[ti+addx[i]][tj+addy[i]];
dp[ti][tj]=maxn+1;
if(dp[ti][tj]>ans)ans=dp[ti][tj];
}
printf("%d",ans);
return 0;
}