return ret;
}
Point Get_Rand(double X,double Y){
return Point((rand()%1000+1)/1000.0*X,(rand()%1000+1)/1000.0*Y);
}
int main(){
srand(time(NULL));
while(scanf("%lf%lf%d",&X,&Y,&n)!=EOF){
for(int i=0;i
//随机20个点
for(int i=0;i
best[i]=Get_Dist(tp[i]);
}
double step=max(X,Y);
while(step>0.001){
for(int i=0;i
//走25步
for(int j=0;j<25;j++){
//随机一个方向
double angle=(rand()%1000+1)/1000.0*2*pi;
cur.x=pre.x+cos(angle)*step;
if(!cur.check()) continue;
double dis=Get_Dist(cur);
if(dis
tp[i]=cur;
}
}
}
//减小步长
step*=0.8;
}
double ans=inf;
int idx;
for(int i=0;i
idx=i;
}
printf("(%.1f,%.1f).\n%.1f\n",tp[idx].x,tp[idx].y,ans);
}
return 0;
}