問題
原文(英語)を表示すべての機械は時刻0から独立して稼働を開始します。ある機械の生産時間が t 秒の場合、t 秒後に1個目、2t 秒後に2個目、…というように生産します。複数の機械の合計生産数が目標に達する最も早い整数秒を求めてください。
factory_machines(times, target) を実装してください。
入力
times: 各機械が1個生産するのに必要な秒数のリスト。
target: 必要な完成品の個数。
出力
最小の経過秒数を返してください。
制約
1 ≤ machines ≤ 200,000。各生産時間および目標個数は1以上1,000,000,000以下。答えは符号付き64ビット整数に収まります。
例
例 1
入力:
times = [2, 3]
target = 5
期待される出力:
expected = 6
入力:
std::vector<long long> times = {2, 3};
long long target = 5;
期待される出力:
long long expected = 6;
入力:
long[] times = new long[] {2, 3};
long target = 5;
期待される出力:
long expected = 6;
解説
時刻6では、機械は合計3 + 2 = 5個生産しています。時刻5では、合計2 + 1 = 3個しか生産していません。
例 2
入力:
times = [4]
target = 3
期待される出力:
expected = 12
入力:
std::vector<long long> times = {4};
long long target = 3;
期待される出力:
long long expected = 12;
入力:
long[] times = new long[] {4};
long target = 3;
期待される出力:
long expected = 12;
解説
1台の機械が3個目を完成させるのは 3 × 4 = 12 秒後です。
参考資料
この課題はCodeUtility用に調整されています。上記の説明と制約に従ってください。