每个灯泡对平面上的40000个点都更新一下。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int T;
int n;
double x,y,z;
double I;
double ll[210][210];
double intense(int i,int j){
double dis=sqrt(((x-i)*(x-i)+(y-j)*(y-j)+z*z));
//cout<<dis;
return fabs(I*z/(dis*dis*dis));
}
void increse(){
for(int i=0;i<=200;i++){
for(int j=0;j<=200;j++){
ll[i][j]+=intense(i-100,j-100);
}
}
}
int main(){
// freopen("in.txt","r",stdin);
scanf("%d",&T);
while(T--){
memset(ll,0,sizeof(ll));
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lf%lf%lf%lf",&x,&y,&z,&I);
increse();
}
double m=0;
for(int i=0;i<=200;i++){
for(int j=0;j<=200;j++){
m=max(m,ll[i][j]);
}
}
printf("%.2lf\n",m);
}
return 0;
}