結果
問題 |
No.2617 容量3のナップザック
|
ユーザー |
![]() |
提出日時 | 2025-06-12 16:59:17 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,718 bytes |
コンパイル時間 | 196 ms |
コンパイル使用メモリ | 82,184 KB |
実行使用メモリ | 184,160 KB |
最終ジャッジ日時 | 2025-06-12 16:59:29 |
合計ジャッジ時間 | 10,393 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 12 WA * 28 |
ソースコード
import sys from collections import deque def main(): input = sys.stdin.read().split() idx = 0 N = int(input[idx]); idx += 1 K = int(input[idx]); idx += 1 seed = int(input[idx]); idx += 1 a = int(input[idx]); idx += 1 b = int(input[idx]); idx += 1 m = int(input[idx]); idx += 1 f = [0] * (2 * N) f[0] = seed for i in range(1, 2 * N): f[i] = (a * f[i-1] + b) % m W1 = [] W2 = [] W3 = [] for i in range(N): wi = (f[i] % 3) + 1 vi = wi * f[N + i] if wi == 1: W1.append(vi) elif wi == 2: W2.append(vi) else: W3.append(vi) W1.sort(reverse=True) W2.sort(reverse=True) W3.sort(reverse=True) q1 = deque(W1) q2 = deque(W2) q3 = deque(W3) total = 0 for _ in range(K): option1 = 0 if q3: option1 = q3[0] option2 = 0 if q2 and q1: option2 = q2[0] + q1[0] option3 = 0 if len(q1) >= 3: option3 = q1[0] + q1[1] + q1[2] option4 = 0 if q1: option4 = q1[0] max_val = max(option1, option2, option3, option4) if max_val == 0: break if max_val == option1: total += option1 q3.popleft() elif max_val == option2: total += option2 q2.popleft() q1.popleft() elif max_val == option3: total += option3 q1.popleft() q1.popleft() q1.popleft() elif max_val == option4: total += option4 q1.popleft() print(total) if __name__ == '__main__': main()