蒟蒻求助,82分,#6#8始终WA
查看原帖
蒟蒻求助,82分,#6#8始终WA
655192
Tibrella楼主2022/7/22 11:07
#include <bits/stdc++.h>

using namespace std;

unsigned short int a[5005][5005];
unsigned short int s[5005][5005];

int main(){
	int m,n,x,y,v,mx=0,mn=0,x1=0,y1=0,maxn = 0;
	scanf("%d%d",&n,&m);
	for (int i = 1; i <= n; i++){
		scanf("%d%d%d",&x,&y,&v);
		a[x][y]= v;
		if (x > x1) x1 = x; //最大坐标
		if (y > y1) y1 = y;
	}
	for (int i = 0; i <= x1; i ++){
		for (int j = 0; j <= y1; j ++){
			s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1] + a[i][j];	
		}
	}
	for (int i = 0; i <= x1 - m; i ++){
		for (int j = 0; j <= y1 - m; j ++){
			int tmp = s[i][j]-s[i+m][j]-s[i][j+m]+s[i+m][j+m];
			maxn = max(maxn,tmp);
		}
	}
	printf("%d",maxn);
	return 0;
}
2022/7/22 11:07
加载中...