new file: P2280.cpp
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
// 101
|
||||
#include <cstdio>
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
int n, r;
|
||||
int maxx = 0, maxy = 0;
|
||||
int sum[5005][5005];
|
||||
int query(int i, int j)
|
||||
{
|
||||
int x2 = min(maxx, i + r - 1);
|
||||
int y2 = min(maxy, j + r - 1);
|
||||
return sum[x2][y2] - sum[i - 1][y2] - sum[x2][j - 1] + sum[i - 1][j - 1];
|
||||
}
|
||||
int main()
|
||||
{
|
||||
scanf("%d%d", &n, &r);
|
||||
for (int x, y, w, i = 1; i <= n; ++i)
|
||||
scanf("%d%d%d", &x, &y, &w), maxx = max(maxx, x+1), maxy = max(maxy, y+1), sum[x+1][y+1] += w;
|
||||
for (int i = 1; i <= maxx; ++i)
|
||||
{
|
||||
for (int j = 1; j <= maxy; ++j)
|
||||
{
|
||||
sum[i][j] += sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
|
||||
}
|
||||
}
|
||||
if (r >= maxx && r >= maxy)
|
||||
{
|
||||
printf("%d\n", sum[maxx][maxy]);
|
||||
return 0;
|
||||
}
|
||||
int ans = 0;
|
||||
for (int i = 1; i <= maxx; ++i)
|
||||
{
|
||||
for (int j = 1; j <= maxy; ++j)
|
||||
{
|
||||
ans = max(ans, query(i, j));
|
||||
}
|
||||
}
|
||||
printf("%d\n", ans);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user