結果
問題 | No.1861 Required Number |
ユーザー |
|
提出日時 | 2022-03-04 22:13:30 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 823 bytes |
コンパイル時間 | 292 ms |
コンパイル使用メモリ | 82,308 KB |
実行使用メモリ | 156,164 KB |
最終ジャッジ日時 | 2024-07-18 22:58:33 |
合計ジャッジ時間 | 10,809 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 39 WA * 3 MLE * 4 |
ソースコード
def main():import sysinput = sys.stdin.readlinen, k = map(int, input().split())a = list(map(int, input().split()))dp = [[0] * (k + 1) for _ in range(n + 1)]dp[0][0] = 1for 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 not dp[n][k]: exit(print(-1))now = (n, k)l1 = []while now != (0, 0):cn, ck = nowif 0 <= cn - 1 <= n and 0 <= ck - a[cn - 1] <= k and 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 0 <= cn - 1 <= n and 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)))if __name__ == '__main__':main()