题目描述 https://www.luogu.org/problemnew/show/P2038
这个题貌似没什么难度,需要注意的就是越界问题,emmm,直接代码吧
代码
#include<iostream>
#include<cstdio>
using namespace std;
int a[150][150];
int main()
{ int i,j,q,k,x,y,d,n,t=0;
int ans=0;
//freopen("wireless.in","r",stdin);
//freopen("wireless.out","w",stdout);
cin>>d>>n;
for(i=1;i<=n;i++)
{
int x1,x2,y1,y2;
cin>>x>>y>>k;
x1=x-d; x2=x+d; y1=y-d; y2=y+d;
if(x1<0) x1=0;
if(x2>128) x2=128;
if(y1<0) y1=0;
if(y2>128) y2=128;
for(j=x1;j<=x2;j++)
for(q=y1;q<=y2;q++)
{
a[j][q]=a[j][q]+k;
if(a[j][q]>ans){ ans=a[j][q]; t=1;}//有最大值时 数量要更新
else if(a[j][q]==ans) t++;
}
}
cout<<t<<" "<<ans;
//fclose(stdin);fclose(stdout);
return 0;
}