题目描述
输入格式
输入文件名为input.txt
输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi 。
输出格式
输出文件名为output.txt
输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767)。
输入输出样例
输入 #1复制
2 10 0 11 1 1
输出 #1复制
1
这题我真的不知道它为啥70
有的题解解法和我一样!!!
但是我就是70.。。。
// luogu-judger-enable-o2#include#include #include using namespace std;#pragma GCC optimize(2)#pragma GCC optimize(3)const int Q=5005;int n,r,i,j,x1,y1,x2,y2,ans=0,k,l,m1,m2;bool cmp(int x,int y){ return x>y;}int b[Q][Q],x,y,v[5005];int main(){ scanf("%d%d",&n,&r); x1=y1=9999; x2=y2=-9999; for(i=1;i<=n;i++){ scanf("%d%d%d",&x,&y,&v[i]); m1=x+r-1; m2=y+r-1; if(m1>5000){ m1=5000; } if(m2>5000){ m2=5000; } for(j=x;j<=m1;j++){ for(k=y;k<=m2;k++){ b[j][k]+=v[i]; } } if(x x2){ x2=x; }if(y>y2){ y2=y; } } if(r==1){ sort(v+1,v+1+n,cmp); printf("%d",v[1]); return 0; } for(i=x1;i<=x2;i++){ for(j=y1;j<=y2;j++){ if(b[i][j]>ans){ ans=b[i][j]; } } } printf("%d",ans); return 0;}