結果
問題 | No.1861 Required Number |
ユーザー |
|
提出日時 | 2022-03-04 22:09:54 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 710 bytes |
コンパイル時間 | 337 ms |
コンパイル使用メモリ | 82,104 KB |
実行使用メモリ | 156,132 KB |
最終ジャッジ日時 | 2024-07-18 22:57:56 |
合計ジャッジ時間 | 13,077 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 9 WA * 1 RE * 32 MLE * 4 |
ソースコード
n, k = map(int, input().split())a = list(map(int, input().split()))dp = [[0] * (k + 1) for _ in range(n + 1)]dp[0][0] = 1mem = [-1] * (k + 1)for i in range(n):for j in range(k + 1):if j - a[i] >= 0: dp[i + 1][j] |= dp[i][j - a[i]]dp[i + 1][j] |= dp[i][j]if mem[j] == -1 and dp[i + 1][j]:mem[j] = i + 1if not dp[n][k]: exit(print(-1))now = (n, k)l1 = []while now != (0, 0):cn, ck = nowif dp[cn - 1][ck - a[cn - 1]]:l1.append(cn - 1)now = (cn - 1, ck - a[cn - 1])else:now = (cn - 1, ck)l2 = []now = (n, k)while now != (0, 0):cn, ck = nowif dp[cn - 1][ck]:now = (cn - 1, ck)else:l2.append(cn - 1)now = (cn - 1, ck - a[cn - 1])print(len(set(l1) & set(l2)))