結果
問題 |
No.1861 Required Number
|
ユーザー |
|
提出日時 | 2022-03-04 22:31:54 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 808 bytes |
コンパイル時間 | 150 ms |
コンパイル使用メモリ | 82,108 KB |
実行使用メモリ | 849,080 KB |
最終ジャッジ日時 | 2024-07-18 23:06:15 |
合計ジャッジ時間 | 5,705 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 MLE * 1 -- * 24 |
ソースコード
import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import log,gcd input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) N,K = mi() A = li() assert N <= 10**4 assert K <= 10**3 dp = [0 for i in range(N+1)] dp[0] = 1 for i in range(N): dp[i+1] = dp[i]|(dp[i]<<A[i]) dp_back = [0 for i in range(N+1)] dp_back[N] = 1 for i in range(N)[::-1]: dp_back[i] = dp_back[i+1]|(dp_back[i+1]<<A[i]) if dp[-1]>>K & 1 == 0: exit(print(-1)) need = 0 for i in range(N): flag = True for k in range(K+1): if dp[i]>>k & 1: if dp_back[i+1]>>(K-k) & 1: flag = False if flag: need += 1 print(need)