#include<bits/stdc++.h>
using namespace std;
const double eps=1e-8;
int n;
struct node{
    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;
}
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;
}

最新文章

  1. centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解
  2. Heartbeat+LVS构建高可用负载均衡集群
  3. 闭包拾遗 &amp; 垃圾回收机制
  4. Linux内核通杀提权漏洞CVE-2016-5195验证
  5. GDB调试器简介
  6. Oracle中的USEREVN()
  7. MyBatis学习笔记(3)—— 利用mybatis灌入假数据
  8. J.U.C CAS
  9. Linux之网络管理
  10. 数据结构与算法 —— 链表linked list(01)
  11. Django之Apps源码学习
  12. 安装windows 10到固态硬盘实践记录
  13. ASP.NET Core 共享第三方依赖库部署的Bug(*.deps.json on 2.2.0 or 4.6.0 版本)
  14. JVM内存模型和GC机制
  15. mr实现pagerank
  16. 调度器简介,以及Linux的调度策略
  17. format 用法
  18. python描述符
  19. Zephyr的Logging
  20. Linux环境下配置maven环境

热门文章

  1. jquery 实现智能炫酷的翻页相册效果
  2. JS常用工具类代码
  3. Serblet 过滤器(Filter)
  4. jQuery 参考手册 - 选择器
  5. arguments对象的实例使用
  6. 用VBA计算两个日期之间的工作日(去掉周末两天)
  7. 使用Visual Studio进行单元测试-Part4
  8. JUnit手记
  9. Poj_1004_FinancialManagement
  10. Java精度计算与舍入