ykc1146187241 @ 2023-07-05 10:58:06
第6,8,9,10点报错,没有测试集也不知道错哪了
#include<iostream>
#include <algorithm>
using namespace std;
class altitude{
public:
int row;
int column;
int height;
};
int main() {
int r,c;
cin>>r>>c;
altitude dp[10005];
int res[101][101]={};
int k=0;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
cin>>dp[k].height;
dp[k].row=i+1;
dp[k].column=j+1;
k++;
}
}
for(int i=0;i<k;i++){
for(int j=i-1;j>=0;j--){
if(dp[j].height>dp[j+1].height){
altitude temp;
temp=dp[j];
dp[j]=dp[j+1];
dp[j+1]=temp;
}
}
}
res[dp[0].row][dp[0].column]=1;
for(int i=0;i<k;i++){
res[dp[i].row][dp[i].column]=max(max(res[dp[i].row-1][dp[i].column],res[dp[i].row+1][dp[i].column]),max(res[dp[i].row][dp[i].column-1],res[dp[i].row][dp[i].column+1]))+1;
}
int max1=0;
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
if(max1<res[i][j])
max1=res[i][j];
}
}
cout<<max1;
}