#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,那就簡單了。
如果條件苛刻點,可以考慮求出所有點構成的線段的中點,然后對所有中點求出到每一點的距離,選擇最大的距離作為半徑,該中點作為圓心。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

