注意斜线总和最大值可能是负数
2025-08-04 13:58:06
发布于:浙江
6阅读
0回复
0点赞
内存消耗7.18MB 超过100%用户的题解!
#include<iostream>
using namespace std;
int a[1000][1000];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
//输入
long long maxn=-1000000000000000;
int small;
n<m?small=n:small=m;
long long sum1=0;
for(int i=0;i<small;i++){
sum1+=a[i][i];
}
if(sum1>maxn)maxn=sum1;
//对角线
//右上侧
for(int p=1;p<m;p++){//p相当于j?
long long sum=0;
for(int i=0,j=p;i<n&&j<m;i++,j++){
sum+=a[i][j];
}
if(sum>maxn)maxn=sum;
}
//左下侧
for(int p=1;p<n;p++){//p相当于i?
long long sum=0;
for(int i=p,j=0;i<n&&j<m;i++,j++){
sum+=a[i][j];
}
if(sum>maxn)maxn=sum;
}
cout<<maxn;
return 0;
}
这里空空如也
有帮助,赞一个