Description
甲、乙同时从A地出发要尽快到达B地。出发时A地有带一人的小车。可是这辆车除了驾驶员外只能带一个人。又知甲、乙两人步行速度相同。问怎样得用小车才能使两个尽快同时到达。
Input
仅一行,三个数据分别表示AB两地的距离s,人的速度,车的速度
Output
两人同时到达B点的最短时间(结果保留小数点后4位)。
Sample Input
120 5 25
Sample Output
9.6000
保留小数点后4位
最佳方案就是甲乘车到k处后下车步行,小车再回去接在c处的乙。然后甲乙一起到B地。
我们用二分的方法求k直达到达时间满足精度。
代码如下:
const z=1e-4;
var
s,a,b,c,c0,c1,t1,t2,t3,t4:real;
begin
readln(s,a,b);
c0:=0;
c1:=s;
repeat
c:=(c0+c1)/2;
t3:=c/b;
t2:=t3+(s-c)/a;
t4:=(c-t3*a)/(a+b);
t1:=t3+t4+(s-(t3+t4)*a)/b;
if t1<t2 then c0:=c else c1:=c;
until abs(t1-t2)<=0.0001;
write(t1:0:4);
end.