#include<bits/stdc++.h>
//#define double long double
#define mc 0.996
using namespace std;
int n;
double ansx,ansy,ans;
struct wa{
int x,y,w;
}a[2005];
inline int read()
{
int x=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar())if(c=='-')f=-1;
for(; isdigit(c);c=getchar())x=(x<<3)+(x<<1)+c-'0';
return x*f;
}
double hhh(double x,double y)
{
double em,dx,dy;
for(register int i=1;i<=n;i++){
dx=x-a[i].x,dy=y-a[i].y;
em+=(double)(sqrt(dx*dx+dy*dy)*a[i].w);
}
return em;
}
void fire()
{
double ex,ey,ea,de,t=2021;
while(t>1e-15){
ex=ansx+((rand()<<1)-RAND_MAX)*t;
ey=ansy+((rand()<<1)-RAND_MAX)*t;
ea=hhh(ex,ey);
de=ea-ans;
if(de<0){ansx=ex,ansy=ey,ans=ea;}
else if(exp(-de/t)*RAND_MAX>rand()){ansx=ex,ansy=ey;}
t*=mc;
}
}
void sa()
{
fire();fire();fire();
fire();
fire();
}
int main()
{
register int i;
n=read();
//scanf("%d",&n);
srand(time(0));
for(i=1;i<=n;i++){
a[i].x=read(),a[i].y=read(),a[i].w=read();
//scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].w);
ansx+=a[i].x,ansy+=a[i].y;
}
ansx/=n,ansy/=n;
ans=hhh(ansx,ansy);
sa();
printf("%.3lf %.3lf",ansx,ansy);
return 0;
}
(long double用过也没过
求大佬