Timus 1640

系统 1617 0
      
        #include 
      
      
        <
      
      
        iostream
      
      
        >
      
      
        
using namespace std;

#define MAXN 100

typedef
struct point_st {
double x,y;
}
* point_t;

point_st points[MAXN]
= { 0 };

int main() {
int N,i,j;
double d,max_d_sqt = - 1 ,x,y;
point_st pointA, pointB;
cin
>> N;
for (i = 0 ;i < N;i ++ )
cin
>> points[i].x >> points[i].y;

for (i = 0 ;i < N;i ++ ) {
d
= points[i].x * points[i].x + points[i].y * points[i].y;
if (max_d_sqt < d) {
max_d_sqt
= d;
pointA
= points[i];
}
}

printf(
" 0 0 %.12lf\n " , pow(max_d_sqt, 0.5 ));

return 0 ;
}

题目就是要求一点,以该点为圆心作一个半径R的圆,至少有一个已给出的点在该圆上,而其他点则在该圆内。

很坑爹的一题,首先是主角要传送的地点竟然可以是原来的点,即不动

而且,题目给出点坐标的绝对值不大于1000,但冰墙的半径却可以是不大于10000,那就简单了。

如果条件苛刻点,可以考虑求出所有点构成的线段的中点,然后对所有中点求出到每一点的距离,选择最大的距离作为半径,该中点作为圆心。

Timus 1640


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论