<p>给你一个整数数组 <code>ranks</code> ,表示一些机械工的 <strong>能力值</strong> 。<code>ranks<sub>i</sub></code> 是第 <code>i</code> 位机械工的能力值。能力值为 <code>r</code> 的机械工可以在 <code>r * n<sup>2</sup></code> 分钟内修好 <code>n</code> 辆车。</p> <p>同时给你一个整数 <code>cars</code> ,表示总共需要修理的汽车数目。</p> <p>请你返回修理所有汽车 <strong>最少</strong> 需要多少时间。</p> <p><strong>注意:</strong>所有机械工可以同时修理汽车。</p> <p> </p> <p><strong>示例 1:</strong></p> <pre> <b>输入:</b>ranks = [4,2,3,1], cars = 10 <b>输出:</b>16 <b>解释:</b> - 第一位机械工修 2 辆车,需要 4 * 2 * 2 = 16 分钟。 - 第二位机械工修 2 辆车,需要 2 * 2 * 2 = 8 分钟。 - 第三位机械工修 2 辆车,需要 3 * 2 * 2 = 12 分钟。 - 第四位机械工修 4 辆车,需要 1 * 4 * 4 = 16 分钟。 16 分钟是修理完所有车需要的最少时间。 </pre> <p><strong>示例 2:</strong></p> <pre> <b>输入:</b>ranks = [5,1,8], cars = 6 <b>输出:</b>16 <b>解释:</b> - 第一位机械工修 1 辆车,需要 5 * 1 * 1 = 5 分钟。 - 第二位机械工修 4 辆车,需要 1 * 4 * 4 = 16 分钟。 - 第三位机械工修 1 辆车,需要 8 * 1 * 1 = 8 分钟。 16 分钟时修理完所有车需要的最少时间。 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>1 <= ranks.length <= 10<sup>5</sup></code></li> <li><code>1 <= ranks[i] <= 100</code></li> <li><code>1 <= cars <= 10<sup>6</sup></code></li> </ul>