ある会社には $n$ 台のサーバがあり、$1$ から $n$ まで番号が付けられています。$i$ 番目のサーバは $a_i$ 個のサービスを実行しています。
サーバは時々停止することがあるため、各サーバに対してバックアップ用のサーバが定義されています。番号 $i$ のサーバに対して、バックアップは番号 $p_i$ のサーバです。$i$ 番目のサーバについて $p_i = i$ である場合、そのサーバは高信頼性サーバであり、決して停止しません。
任意の異なる 2 つのサーバ $i$ と $j$ に対して、それらのバックアップサーバの番号 $p_i$ と $p_j$ は異なります。したがって、$p$ は長さ $n$ の置換であり、$1$ から $n$ までの各数が $p_1, \dots, p_n$ の中にちょうど 1 回現れることを意味します。
サーバの停止プロセスは次のように行われます。サーバ $i$ が停止すると、その上で実行されているすべてのサービスは番号 $p_i$ のサーバに移動され、サーバ $i$ はサービスが何も実行されていない新しいサーバに置き換えられます。このサーバの番号とそのバックアップサーバの番号は変わりません。サービスの移動とサーバの置き換えは非常に高速なプロセスであり、その間新しい停止は発生しません。
会社はシステムの性能テストを実施する予定です。そのために、最大 $k$ 台のサーバが停止されます。停止は順次実行され、つまり 2 台のサーバが同時に停止することはありません。最大 $k$ 台のサーバを停止した後に、1 台のサーバ上に集まるサービスの最大数を求めてください。
入力
1 行目には 2 つの整数 $n$ と $k$ ($1 \leqslant k < n \leqslant 10^5$) が与えられます。 — サーバの台数と停止できるサーバの最大数です。
2 行目には $n$ 個の整数 $a_1, a_2, \dots, a_n$ ($0 \leqslant a_i \leqslant 10^9$) が与えられます。 — 各サーバで実行されているサービスの数です。
3 行目には $n$ 個の整数 $p_1, p_2, \dots, p_n$ ($1 \leqslant p_i \leqslant n$) が与えられます。 — バックアップサーバの番号です。
出力
答えとなる整数を 1 つ出力せよ。
小課題
| :---: | :---: | :---: | :---: | | 小課題 | 点数 | 制約 | 必要な小課題 | | 1 | 15 | $n \leqslant 1000$, $k = 1$ | — | | 2 | 27 | $n \leqslant 1000$ | 1 | | 3 | 21 | $p_i = i \pmod n + 1$ | — | | 4 | 37 | — | 1, 2, 3 |
入出力例
入力 1
4 2 6 10 7 9 2 3 4 1
出力 1
26
入力 2
3 1 1000000000 993 2010 1 3 2
出力 2
1000000000
入力 3
11 5 3 5 12 7 5 9 2 6 0 9 4 2 8 9 6 5 11 3 1 10 7 4
出力 3
23
注記
最大の答えを達成できるサーバの停止順序を考えます。
サーバが停止したときのサービスの移動の仕組みを思い出してください。
| サーバ | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| バックアップ | 2 | 3 | 4 | 1 |
最初にサーバ 2 が停止します。そのサービスはサーバ 3 に移動し、サーバ 3 のサービスは $10 + 7 = 17$ になります。
次にサーバ 3 が停止します。そのサービスはサーバ 4 に移動し、サーバ 4 のサービスは $9 + 17 = 26$ になります。
理解を深めるために、以下の表は上記のプロセスにおける各サーバのサービス数を記録したものです。
| 段階 | $a_1$ | $a_2$ | $a_3$ | $a_4$ |
|---|---|---|---|---|
| 最初の停止前 | 6 | 10 | 7 | 9 |
| サーバ 2 の停止後 | 6 | 0 | 17 | 9 |
| サーバ 3 の停止後 | 6 | 0 | 0 | 26 |
もし最初にサーバ 3 が停止し、次にサーバ 2 が停止した場合、プロセスは次のようになります。
| 段階 | $a_1$ | $a_2$ | $a_3$ | $a_4$ |
|---|---|---|---|---|
| 最初の停止前 | 6 | 10 | 7 | 9 |
| サーバ 3 の停止後 | 6 | 10 | 0 | 16 |
| サーバ 2 の停止後 | 6 | 0 | 10 | 16 |
この場合、サーバ上のサービスの最大数は 16 となり、最適な答えではありません。
2 番目の例では、可能な選択肢の 1 つはサーバを 1 台も停止しないことです。その場合、最初のサーバに $1000000000$ 個のサービスがあり、それが答えになります。サーバ 2 またはサーバ 3 を停止しても、最大のサービス数はやはり最初のサーバになります。