問題一覧 > 通常問題

No.2617 容量3のナップザック

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 38
作問者 : startcpp / テスター : 👑 p-adic
2 ProblemId : 7736 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-12-23 20:02:01

問題文

NN 個のアイテムと、KK 個のナップザックがあります。
アイテムには 11 から NN までの番号が振られており、ナップザックには 11 から KK までの番号が振られています。
アイテム ii の重さは wiw_i で、価値は viv_i です。

すたーと君は、それぞれのナップザックにいくつかのアイテムを入れます。
何も入れないナップザックがあっても構いませんが、
どのナップザックについても、入れるアイテムの重さの合計が 33 以下になるようにします。

このとき、KK 個のナップザックに入れるアイテムの価値の総和を、最大でいくらにできるでしょうか?

wiw_iviv_i はパラメータ seed,a,b,mseed, a, b, m を使った漸化式によって定められます。
具体的には、% を余り演算としたとき
f1=seedf_1 = seed
fi+1=(a×fi+b)f_{i + 1} = (a \times f_i + b) % mm; 1i<2N1 \le i \lt 2N
という漸化式で数列 (f1,,f2N)(f_1, \cdots, f_{2N}) を生成したのち、i=1,,Ni = 1, \cdots, N について
wi=fiw_i = f_i % 3+13 + 1
vi=wi×fN+iv_i = w_i \times f_{N + i}
と定めます。

入力

NN KK seedseed aa bb mm

入力は整数
1KN1061 \le K \le N \le 10^6
3m1093 \le m \le 10^9
1a<m1 \le a \lt m
1b<m1 \le b \lt m
1seed<m1 \le seed \lt m

出力

価値の総和の最大値を表す整数を 11 行に出力してください。
最後に改行してください。

サンプル

サンプル1
入力
6 2 15 26 31 97
出力
536

(w1,w2,w3,w4,w5,w6)=(1,1,2,3,2,1)(w_1, w_2, w_3, w_4, w_5, w_6) = (1, 1, 2, 3, 2, 1)
(v1,v2,v3,v4,v5,v6)=(22,21,184,285,152,67)(v_1, v_2, v_3, v_4, v_5, v_6) = (22, 21, 184, 285, 152, 67)
になります。アイテム 44 をナップザック 11 に、アイテム 3,63, 6 をナップザック 22 に入れたときが最適です。答えは 184+285+67=536184 + 285 + 67 = 536 になります。

サンプル2
入力
100 25 5049654 306283215 360320319 370412443
出力
21985715485

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