Codeforces#514D(三分,简单二维几何)
2024-08-28 07:10:41
#include<bits/stdc++.h>
using namespace std;
const double eps=1e-8;
int n;
using namespace std;
const double eps=1e-8;
int n;
struct node{
double x,y;
}a[1000007];
double x,y;
}a[1000007];
long double find_r(long double x){
long double r=0;
for(int i=1;i<=n;i++){
r=max(r,(x-a[i].x)*(x-a[i].x)/a[i].y/2+a[i].y/2);//寻找最大的半径
}
return r;
}
long double r=0;
for(int i=1;i<=n;i++){
r=max(r,(x-a[i].x)*(x-a[i].x)/a[i].y/2+a[i].y/2);//寻找最大的半径
}
return r;
}
int main(){
int flag=0,flag1=0,flag2=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%lf%lf",&a[i].x,&a[i].y);
if(a[i].y>0&&flag1==0)
flag1=1,flag++;
if(a[i].y<0&&flag2==0)
flag2=1,flag++;
if(a[i].y<0)
a[i].y-=2*a[i].y;
}
int can=0;
if(flag==2){
can=1;
}
if(can==1){
puts("-1");
}
else{
long double l=-1e7,r=1e7,lx,rx,dx;
while(r-l>eps){//寻找最适中的圆心横坐标
dx=(r-l)/3.0;
lx=l+dx;
rx=r-dx;
if(find_r(lx)-find_r(rx)<0)
r=rx;
else
l=lx;
}
long double x=find_r(r);
printf("%.8lf\n",x);//Lf需用C++14及以上提交,C++11会WA
}
return 0;
}
int flag=0,flag1=0,flag2=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%lf%lf",&a[i].x,&a[i].y);
if(a[i].y>0&&flag1==0)
flag1=1,flag++;
if(a[i].y<0&&flag2==0)
flag2=1,flag++;
if(a[i].y<0)
a[i].y-=2*a[i].y;
}
int can=0;
if(flag==2){
can=1;
}
if(can==1){
puts("-1");
}
else{
long double l=-1e7,r=1e7,lx,rx,dx;
while(r-l>eps){//寻找最适中的圆心横坐标
dx=(r-l)/3.0;
lx=l+dx;
rx=r-dx;
if(find_r(lx)-find_r(rx)<0)
r=rx;
else
l=lx;
}
long double x=find_r(r);
printf("%.8lf\n",x);//Lf需用C++14及以上提交,C++11会WA
}
return 0;
}
最新文章
- centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解
- Heartbeat+LVS构建高可用负载均衡集群
- 闭包拾遗 &; 垃圾回收机制
- Linux内核通杀提权漏洞CVE-2016-5195验证
- GDB调试器简介
- Oracle中的USEREVN()
- MyBatis学习笔记(3)—— 利用mybatis灌入假数据
- J.U.C CAS
- Linux之网络管理
- 数据结构与算法 —— 链表linked list(01)
- Django之Apps源码学习
- 安装windows 10到固态硬盘实践记录
- ASP.NET Core 共享第三方依赖库部署的Bug(*.deps.json on 2.2.0 or 4.6.0 版本)
- JVM内存模型和GC机制
- mr实现pagerank
- 调度器简介,以及Linux的调度策略
- format 用法
- python描述符
- Zephyr的Logging
- Linux环境下配置maven环境