第十六届蓝桥杯模拟赛(第二期)-c++第九题

#include<bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e3+3;
int a[N][N],res=0;
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
for(int x1=0;x1<n-1;x1++)
for(int y1=0;y1<m-1;y1++)
{
    int L=min(n-x1,m-y1);
    for(int k=1;k<L;k++){
    
               int  x2 = x1 + k;
               int  y2 = y1 + k;
//                # 计算这个“口”字形区域的和
               int  s = 0;
               for(int t=x1;t<=x2;t++)s+=a[t][y1],s+=a[t][y2];
               for(int t=y1;t<=y2;t++)s+=a[x1][t],s+=a[x2][t];
               

                s-=a[x1][y1];
                s-=a[x1][y2];
                s-=a[x2][y1];
                s-=a[x2][y2];
  //              # 更新最大值
                res= max(res,s);
}
}
cout<<res;
}

 

评论
暂无评论

登录后可发表评论

点击登录