結果

問題 No.3713 海底探索
ユーザー touma6174
提出日時 2026-09-22 04:14:19
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 817 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 67 ms
コンパイル使用メモリ 83,380 KB
実行使用メモリ 77,968 KB
最終ジャッジ日時 2026-09-22 04:14:22
合計ジャッジ時間 2,926 ms
ジャッジサーバーID
(参考情報)
judge5_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 8 WA * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

N, A, B = map(int, input().split())
XY = [tuple(map(int, input().split())) for _ in range(N)]

# (個数, 攻撃)
# (-攻撃, -個数)
#dp = [[SortedList(key=lambda x: (-x[1], -x[0])) for _ in range(A + 1)] for _ in range(N)]
dp = [[[] for _ in range(A + 1)] for _ in range(N)]

dp[0][0].append((0, 0))
if XY[0][0] <= A:
    dp[0][XY[0][0]].append((1, XY[0][1]))

for i in range(1, N):
    for j in range(A+1):
        min_attack = 10**12
        dp[i-1][j].sort()
        for a in dp[i-1][j]:
            if a[1]+XY[i][1] >= min_attack:
                continue
            min_attack = a[1]+XY[i][1]
            if j+XY[i][0] <= A:
                dp[i][j+XY[i][0]].append((a[0]+1, a[1]+XY[i][1]))
            dp[i][j].append(a)

ans = 0
for a in dp[-1]:
    if a and a[0][0] > ans:
        ans = a[0][0]
print(ans)
0