编辑代码

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
  // 读取输入参数:m辆车,终点距离为n
  const [m, n] = (await readline()).split(" ").map(Number);

  // 读取每辆车的速度
  const speeds = [];
  for (let i = 0; i < m; i++) {
    speeds.push(Number(await readline()));
  }

  // 记录最后一辆车到达终点的时间
  let arrived = 0;

  // 计算每辆车到达终点的时间,取最大值
  for (let i = 0; i < m; i++) {
    const speed = speeds[i];
    // 计算当前车辆到达时间:
    // n/speed:行驶时间
    // i:出发延迟时间(每辆车依次出发)
    arrived = Math.max(arrived, n / speed + i);
  }

  // 计算总成本:
  // arrived:最后一辆车到达时间
  // (m-1):最后一辆车的发车时间
  const cost = arrived - (m - 1);

  // 输出结果
  console.log(cost);
})();