记录编号 140570 评测结果 AAAAAAAAAA
题目名称 [NOIP 2014]无线网路发射器选址 最终得分 100
用户昵称 Gravatar奶猹 是否通过 通过
代码语言 C++ 运行时间 0.045 s
提交时间 2014-11-22 19:14:44 内存使用 0.38 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<climits>
#include<cstdlib>
#include<algorithm>
#include<ctime>
#include<map>
using namespace std;

int n,d;
int a[130][130];
map <int ,int > num;
int ans=0;

void init();
void work();
void outit();
void find(int ,int );

int ret;
char ch;
int qread()
{
	ret=0;
	while(ch=getchar(),!isdigit(ch));
	while(ret=ret*10+ch-'0',ch=getchar(),isdigit(ch));
	return ret;
}

int main()
{
	freopen("wireless.in","r",stdin);
	freopen("wireless.out","w",stdout);
	init();
	work();
	outit();
	fclose(stdin);
	fclose(stdout);
	return 0;
}
void init()
{
	d=qread();
	n=qread();
	int x,y,z;
	for(int i=1;i<=n;i++)
	{
		x=qread();
		y=qread();
		z=qread();
		a[x][y]=z;
	}
}
void work()
{
	for(int i=0;i<=128;i++)
	for(int j=0;j<=128;j++)
	find(i,j);
}
void outit()
{
	printf("%d %d\n",num[ans],ans);
}
void find(int x,int y)
{
	int lx=x-d,ly=y-d,rx=x+d,ry=y+d;
	if(lx<0)lx=0;
	if(ly<0)ly=0;
	if(rx>128)rx=128;
	if(ry>128)ry=128;
	int sum=0;
	for(int i=lx;i<=rx;i++)
	for(int j=ly;j<=ry;j++)
	sum+=a[i][j];
	num[sum]++;
	if(sum>=ans)
	ans=sum;
}