一種新型的激光炸彈,可以摧毀一個邊長為R的正方形內的所有的目標,
現在地圖上有n(N ≤ 10000)個目標,用整數Xi,Yi(其值在[0,5000])表示目標在地圖上的位置,每個目標都有一個價值,
激光炸彈的投放是通過衛星定位的,但其有一個缺點,就是其爆破范圍,即那個邊長為R的正方形的邊必須和x,y軸平行,
若目標位于爆破正方形的邊上,該目標將不會被摧毀,
輸入描述:
輸入檔案的第一行為正整數n和正整數R,接下來的n行每行有3個正整數,分別表示 xi,yi ,vi ,
輸出描述:
輸出檔案僅有一個正整數,表示一顆炸彈最多能炸掉地圖上總價值為多少的目標(結果不會超過32767),
示例1
輸入
2 1
0 0 1
1 1 1
輸出
1
#include<bits/stdc++.h>
using namespace std;
int a[5002][5002];
int main()
{
int n, r;
cin >> n >> r;
for(int i = 1; i <= n; i++)
{
int x, y, v;
cin >> x >> y >> v;
a[y+1][x+1] = v;
}
for(int i = 1; i <= 5001; i++)
for(int j = 1; j <= 5001; j++)
a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
int max1 = -1;
for(int i = 0; i <= 5000-r; i++)
for(int j = 0; j <= 5000-r; j++)
max1 = max(max1, a[i + r][j + r] - a[i][j + r] - a[i + r][j] + a[i][j]);
cout << max1;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262999.html
標籤:其他
上一篇:duck可不必了解我
下一篇:JS開發中的實用技巧
