救命!不管怎么改都只有72分,总感觉哪里不对却总找不出来错误
查看原帖
救命!不管怎么改都只有72分,总感觉哪里不对却总找不出来错误
1416633
ChairKeter楼主2024/10/17 20:50
#include<iostream>
using namespace std;

const int N = 5e3 + 10;
int s[N][N];

int main()
{
	int n,m,sum = 0,maxs = 0;
	int xm =0 ,ym = 0;
	cin >> n >> m;
	for(int i = 0; i < n; i ++)
	{
		int x1,y1,v;
		cin >> x1 >> y1  >>v;
		if(xm < x1 ) xm = x1;
		if(ym < y1) ym = y1; 
		s[x1+1][y1+1] += v;
	}
	for(int i = 1; i <= xm; i ++)
	{
		for(int j = 1; j <= ym ; j ++)
		s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1] + s[i][j];
	}
	for(int x1 = 1; x1 + m - 1<= xm; x1 ++ )
	for(int y1 = 1; y1 + m - 1 <= ym; y1 ++)
	{
		int x2 = x1 + m -1, y2 = y1 + m - 1;
		sum = s[x2][y2] - s[x2][y1-1] - s[x1-1][y2] + s[x1-1][y1-1];
		maxs = maxs < sum ? sum : maxs;
	}
	cout << maxs << endl;
	return 0;
}

2024/10/17 20:50
加载中...