记录编号 140070 评测结果 WAAAWAAAAA
题目名称 [NOIP 2014]无线网路发射器选址 最终得分 80
用户昵称 Gravatarfyb 是否通过 未通过
代码语言 C++ 运行时间 0.011 s
提交时间 2014-11-18 18:07:56 内存使用 0.50 MiB
显示代码纯文本
#include <stdio.h>

#define XMAX 129
#define YMAX 129
#define DMAX 20

int city[YMAX][XMAX];
int xsum[YMAX+DMAX*3+2][XMAX+DMAX*3+2];

int main(){
	int n,d;
	int x,y,k,last,tmp,mx=0,num=0;
	int i,j,l;

	freopen("wireless.in","r",stdin);
	freopen("wireless.out","w",stdout);

	scanf("%d",&d);
	getchar();
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;i++){
		scanf("%d%d%d",&x,&y,&k);
		getchar();
		city[y][x]=k;
	}

	for(i=0;i<YMAX;i++){
		last=0;
		for(j=0;j<XMAX;j++){
			last+=city[i][j];
			xsum[i+DMAX+1][j+DMAX+1]=last;
//			printf("%d ",xsum[i+DMAX+1][j+DMAX+1]);
		}
//		putchar('\n');
	}

	for(i=0;i<YMAX;i++){
		for(j=0;j<XMAX;j++){
			tmp=0;
			for(l=i-d;l<=i+d;l++){
				tmp+=xsum[l+DMAX+1][j+d+DMAX+1]-xsum[l+DMAX+1][j-d+DMAX];
			}
			if(tmp>mx){
//				printf("i=%d,j=%d,mx=%d\n",i,j,tmp);
				mx=tmp;
			}
		}
	}
	for(i=0;i<YMAX;i++){
		for(j=0;j<XMAX;j++){
			tmp=0;
			for(l=i-d;l<=i+d;l++){
				tmp+=xsum[l+DMAX+1][j+d+DMAX+1]-xsum[l+DMAX+1][j-d+DMAX];
			}
			if(tmp==mx){
				num++;
			}
		}
	}
	printf("%d %d",num,mx);
	return 0;
}