还差一组AC

易错点·:
1,数组int s[100][100]={5},则只有s[0][0]=5;={0}则全部初始化
2,修改变量时记得把程序中的也改了
3,变量都初始化 ! ! ! !
4,二维数组的字母位置要记清,不要写反! ! !
5,
下标会-1,不从0计数

#include<iostream>
using namespace std;

int main(){
    //先输入地图     /*变量都初始化 ! ! ! ! */
    int n,r;
    int x,y,v;
    int xm=0,ym=0, s1[5010][5010]={0};/*不同组变量分开定义 ! ! */ 
    
    cin >> n >> r;
    for(int i = 0; i < n; i++){//逐个输入值
        cin >> x >> y >> v;
        s1[x+1][y+1] = v;   /*二维数组的字母位置要记清,不要写反! ! !*/
        if(xm<x+1)xm=x+1;//求范围
        if(ym<y+1)ym=y+1;
    }
    
    //求二维前缀和(前i行前j列的和)
    //x为横轴,y为竖轴
    for(int j=1;j<xm+1;j++){
        for(int i=1;i<ym+1;i++){
            s1[j][i] = s1[j-1][i] + s1[j][i-1] + s1[j][i] - s1[j-1][i-1];
        //cout<<j<<' '<<i<<' '<<s1[j][i]<<endl;
        }             /*下标会-1,不从0计数*/
    }

    //遍历求区间值
        int now,max=0;
        for(int j=r;j<xm+1;j++){//后面行
        for(int i=r;i<ym+1;i++){
            now = s1[j][i] - s1[j-r][i] - s1[j][i-r] + s1[j-r][i-r];
            //cout<<j<<' '<<i<<' '<<now<<endl;
            if(max<now)max=now;
        }
    }
    
    cout<<max;
    return 0;
}
书写习惯纠正:
1,不同组变量分开定义 ! !   不同功能区定义