WA#8 求助
查看原帖
WA#8 求助
892470
DL_Lingkong楼主2023/7/24 14:23
#include <iostream>
using namespace std;
int v[5500][5500],x,y,i,j,maxv,n,m,maxx,maxy,maxm;
int main()
{
	cin >> n >> m;
	for(j = 1;j <= n;j++)
	{
		cin >> x >> y >> i;
		maxx = max(x,maxx);
		maxy = max(y,maxy);
		v[x][y] = i;
//		cout << x << ',' << y << ':' << i << endl;
	}
	for(i = 0;i <= maxx;i++)
	{
		for(j = 0;j <= maxy;j++)
		{
			if(i == 0 && j != 0)
			{
				v[i][j] += v[i][j - 1];
			}
			else if(i != 0 && j == 0)
			{
				v[i][j] += v[i - 1][j];
			}
			else if(i != 0 && j != 0) 
			{
				v[i][j] += v[i][j - 1] + v[i - 1][j] - v[i - 1][j - 1];
			}
//			cout << v[i][j] << ',' << v[i - m][j] << ',' << v[i][j - m] << ',' << v[i - m][j - m] << endl;
		}
	}
	maxm = maxx;
	for(int i = m;i <= maxx;i++)
	{
		for(int j = m;j <= maxy;j++)
		{
//			cout << i << ',' << j << ':';
			maxv = max(maxv,v[i][j] - v[i - m][j] - v[i][j - m] + v[i - m][j - m]);
//			cout << v[i][j] << ',' << v[i - m][j] << ',' << v[i][j - m] << ',' << v[i - m][j - m] << endl;
		}
	}
	cout << maxv;
	return 0;
}

2023/7/24 14:23
加载中...