XYLX 10.21最长距离

最长距离


【问题描述】

北京和天津两座超大城市正在融合为一个超级都市群,融合首要的问题就是 互通,也就是解决交通问题,现在京津冀领导小组正在筹划在两座城市修建一条 集客货运与一体的城际高铁,初步的设想如下:分别以两座城市中心作为圆心、 原有边界中距离圆心最远的长度作为半径各自划定新的区域,假设这样的两个圆 有不仅仅一个交点。现在以其中一个交点作高铁的一个站点规划一条直线型的高 铁线路,而且为了惠及更多,领导小组还希望该高铁经过两座城市尽可能多的地 方,考虑到建设成本,如果一公里的建设成本为一个成本单位,现在请你计算一 下该高铁的建设成本是多少?


输入输出


【输入数据】

第一行有三个用空格隔开的整数 x1,y1,r1,依次表示北京的中心坐标和新 区域半径;

第二行有三个用空格隔开的整数 x2,y2,r2,依次表示天津的中心坐标和新 区域半径;

输入数据保证两圆相交。


【输出数据】

输出钙高铁的建设成本。你的输出需要保留 6 位小数。


样例 Sample


【输入样例】

5 4 4
-3 2 5


【输出样例】

16.492423


【数据规模】

对于 30%的数据,x1=y1;
对于 50%的数据,r1=r2;
对于 100%的数据,输入数据在 integer 范围内。


分析

该题当圆心在另一圆外时直接就是圆心距的二倍,因为不是圆心距的二倍就是以连心线为斜边的直角三角形的直角边的二倍。
当圆心在园内或圆上时最长就为大圆直径。


代码如下

program chord;
var x1,x2,y1,y2,r1,r2:longint;
    a,b,c:double;
function max(a,b:double):double;
begin
 if a>b then exit(a);
 exit(b);
end;

begin
 readln(x1,y1,r1);
 readln(x2,y2,r2);
 a:=sqrt(sqr(x1-x2)+sqr(y1-y2))*2;
 b:=r1*2;
 c:=r2*2;
 write(max(max(a,b),c):0:6);
end.

呵呵,好短的代码。。。。。。


或许 永别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值