【模拟】无线网络发射器选址

【模拟】无线网络发射器选址
【模拟】无线网络发射器选址

样例输入#1

1
2
4 4 10
6 6 20

样例输出#1

1 30

思路

我认为跟扫雷差不多(不知道为什么他们说跟打砖块很像),就是范围扩大一点,两个for语句搞定,然后边把范围内的数加上公共场所的数量,边判断最多的公共场所数量。

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,maxx,maxn,a[205][205];
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		int x,y,k;
		scanf("%d%d%d",&x,&y,&k);
		int l1,l2,r1,r2;
		if(x-n<0)l1=0;else l1=x-n;
		if(x+n>128)l2=128;else l2=x+n;
		if(y-n<0)r1=0;else r1=y-n;
		if(y+n>128)r2=128;else r2=y+n;//判断是否超界
		for(int l=l1;l<=l2;l++)
			for(int r=r1;r<=r2;r++)
			{
				a[l][r]+=k;
				if(a[l][r]>maxx)
				{
					maxx=a[l][r];
					maxn=1;
				}
				else if(a[l][r]==maxx)maxn++;
			}
	}
	printf("%d %d",maxn,maxx);
	return 0;
}