問題一覧 > 通常問題

No.3471 ジャッジサーバーの負荷分散

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 37
作問者 : yuki2006
ProblemId : 2222 / yukicoder 2026新ジャッジ contest (順位表) / 自分の提出
問題文最終更新日: 2026-03-06 20:34:40
yukicoder 2026新ジャッジ contestの他の問題:

問題文

あるオンラインジャッジには $M$ 台のジャッジサーバー(サーバー $1, 2, \ldots, M$)があります。$N$ 個の提出がキューに順番に並んでおり、先頭から順に 1 つずつサーバーに割り当てていきます。

ここで、サーバーの負荷とは、そのサーバーに既に割り当てられた提出の実行時間の合計です。

各提出はその時点で現在の負荷が最も小さいサーバーに割り当てられます。負荷が最小のサーバーが複数ある場合は、番号が最も小さいサーバーに割り当てます。

提出 $i$ の実行時間は $T_i$ ミリ秒です。

すべての提出を割り当てた後、最後にジャッジが完了する時刻(すべてのサーバーの負荷の最大値)を求めてください。

入力

$N\ M$
$T_1\ T_2\ \ldots\ T_N$
制約はすべて整数

  • $1 \le M \le N \le 200{,}000$
  • $1 \le T_i \le 10^9$

出力

すべてのジャッジが完了する時刻を 1 行で出力してください。 最後に改行してください。

サンプル

サンプル1
入力
5 2
2 3 7 5 1
出力
9

割り当ての過程:
提出1 (2ms) → サーバー1 (負荷: 2, 0)
提出2 (3ms) → サーバー2 (負荷: 2, 3)
提出3 (7ms) → サーバー1 (負荷: 9, 3)
提出4 (5ms) → サーバー2 (負荷: 9, 8)
提出5 (1ms) → サーバー2 (負荷: 9, 9)
完了時刻は $\max(9, 9) = 9$ です。

サンプル2
入力
3 3
10 20 30
出力
30

サーバーが 3 台あるので、各サーバーに 1 つずつ割り当てられます。最も実行時間の長い 30ms が完了時刻になります。

サンプル3
入力
4 1
2 3 7 5
出力
17

サーバーが 1 台しかないので、すべての提出を順番に実行します。合計 $2 + 3 + 7 + 5 = 17$ ms かかります。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。