著名的 Arora-Mitchell 近似算法用于解决欧几里得旅行商问题(Euclidean TSP),由 Sanjeev Arora 和 Joseph S. B. Mitchell 于 1998 年独立发现。它可以在运行时间为 $$n(\log n)^{O((c\sqrt{d})^{d-1})}$$ 内将 $d$ 维空间中最优 TSP 回路的价值近似到 $1 + 1/c$ 的因子范围内,其中 $n$ 是回路中的节点数。
Photo by psiaki
Miroslava 在一家计算机安全公司工作,现在是时候更新欧洲各地多个数据中心的共享加密密钥了。为了完成这项工作,Miroslava 打算租一架私人飞机,将密钥送到在欧洲各大机场等待的员工手中。她希望尽快返回。
Miroslava 的公司拥有一台每秒能执行 $p$ 十亿次运算的计算机。由于我们可以将欧洲近似为一个二维平面,我们假设 Arora-Mitchell 算法在这台计算机上运行的时间恰好为 $$\frac{n(\log_2 n)^{c\sqrt{2}}}{p \cdot 10^9}$$ 秒,以产生最优回路的精确 $(1 + 1/c)$ 近似值。
Miroslava 注意到 $c$ 是算法的一个参数,可以利用它来获得优势,但在选择合适的值时也需要非常小心。如果她将 $c$ 设置得太低,算法会很快完成,但她花在飞越欧洲的时间会太长。另一方面,设置得太高会迫使她在等待计算机给出答案的同时,本可以利用这段时间飞行。
Miroslava 曾在另一家公司工作,从那里她知道所有欧洲主要机场的最优回路长度为 $s$ 米,但她当时在公司的职位不够高,无法获知实际的回路。给定私人飞机的速度 $v$(单位:米/秒),Miroslava 需要 $s(1 + 1/c)/v$ 秒来完成使用参数 $c$ 运行算法所产生的回路。为了简化起见,我们假设 Miroslava 可以在瞬间降落、留下密钥副本并从每个机场起飞。
假设 Miroslava 选择最优参数 $c$,她完成运行算法并分发所有密钥总共需要多长时间?
输入格式
输入包含一行,包含四个数字:
- 一个整数 $n$ ($4 \le n \le 1\,000\,000$),机场的数量;
- 一个实数 $p$ ($0.001 \le p \le 5\,000$),计算机每秒能执行的十亿次运算数;
- 一个实数 $s$ ($10^6 \le s \le 10^9$),所有欧洲主要机场的最优回路长度(单位:米);
- 一个实数 $v$ ($50 \le v \le 900$),私人飞机的速度(单位:米/秒)。
所有实数小数点后最多有 10 位数字。
输出格式
输出一行,包含分发密钥所需的最短总时间 $t$(单位:秒)以及 Miroslava 为达到时间 $t$ 应使用的参数 $c$ 的值。你的答案的绝对误差或相对误差应不超过 $10^{-6}$。
样例
输入格式 1
10 8.9 40075000 272.1
输出格式 1
157079.04857106 15.598261092309
输入格式 2
47 4.2 1337102.4 256
输出格式 2
5836.2936298227 8.9113418228146