一看就是一道傻逼题
然后新建了一个傻逼题.cpp 框框开始敲
然后先是读入优化写错,if打错
调试完之后交上去WA了3个点
下了数据之后不停的怀疑读入优化写错了还是数据出错了
然后找了一个A的代码来对拍
最后发现真的是自己错了
我枚举了辐射框所在位置的右下角,而题目是在中心放点,因而会漏数
从WA到再交上去竟然过了半个小时
这科竞赛真的是容不得半点马虎的,任何一道题都应该用同样的态度来对待
傻逼题.cpp——框框框——WA
这就是这道傻逼题教会我的
#include<cstdio>
#include<iostream>
#include<algorithm>
#define For(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
const int N=1000+5;
int g[N][N],sum[N][N];
int d,n;
inline int read(){
char c=getchar();
int f=1;
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
int x=c-'0';
c=getchar();
while(c<='9'&&c>='0'){x=x*10+c-'0';c=getchar();}
return f*x;
}
int ans1,ans2;
int main(){
d=read();
n=read();
int x,y,z;
For(i,1,n){
x=read();y=read();z=read();
g[x+1][y+1]=z;
}
For(i,1,129)
For(j,1,129)
sum[i][j]=g[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
For(i,1,129)
For(j,1,129){
int temp=sum[min(i+d,129)][min(j+d,129)]-sum[max(0,i-d-1)][min(129,j+d)]-sum[min(i+d,129)][max(0,j-d-1)]+sum[max(0,i-d-1)][max(0,j-d-1)];
if(temp>ans1){ans1=temp;ans2=1;}
else if(temp==ans1)ans2++;
}
cout<<ans2<<" "<<ans1;
return 0;
}