結果
| 問題 |
No.393 2本の竹
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2023-02-09 01:10:25 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 56 ms / 1,000 ms |
| コード長 | 577 bytes |
| コンパイル時間 | 78 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-07-06 09:14:40 |
| 合計ジャッジ時間 | 2,044 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 28 |
ソースコード
import sys
input = sys.stdin.readline
t=int(input())
for tests in range(t):
n1,n2=map(int,input().split())
m=int(input())
A=list(map(int,input().split()))
A.sort()
OK=0
NG=m+1
while NG>OK+1:
mid=(OK+NG)//2
B=A[:mid]
SUM=sum(B)
if SUM>n1+n2:
NG=mid
continue
NOW=1
for b in B:
NOW|=(NOW<<b)
for i in range(max(SUM-n2,0),n1+1):
if NOW & (1<<i) != 0:
OK=mid
break
else:
NG=mid
print(OK)
titia