結果
問題 | No.393 2本の竹 |
ユーザー | ああいい |
提出日時 | 2022-05-17 17:19:56 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 717 bytes |
コンパイル時間 | 224 ms |
コンパイル使用メモリ | 82,140 KB |
実行使用メモリ | 69,368 KB |
最終ジャッジ日時 | 2024-09-15 12:10:07 |
合計ジャッジ時間 | 2,762 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 6 RE * 22 |
ソースコード
d = int(input()) def calc(a,b,m,A): S = 0 dp = [0] * (a + 1) dp[0] = 1 A.sort() S = A[0] if S > a and S > b: return 0 if S <= a: dp[S] = 1 ans = 1 for i in range(1,m): S += A[i] if S > a + b: return ans flag = False for k in range(a - A[i],-1,-1): dp[k + A[i]] |= dp[k] for k in range(S - b,a + 1): if dp[k]: flag = True break if flag: ans += 1 else: return ans return m for _ in range(d): a,b = map(int,input().split()) m = int(input()) A = list(map(int,input().split())) print(calc(a,b,m,A))