結果

問題 No.3537 Thank You!
コンテスト
ユーザー kidodesu
提出日時 2026-05-08 21:55:34
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 797 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 191 ms
コンパイル使用メモリ 85,532 KB
実行使用メモリ 110,712 KB
最終ジャッジ日時 2026-05-08 21:55:39
合計ジャッジ時間 3,611 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
サブタスク1 30 % AC * 18 WA * 3
サブタスク2 70 % AC * 7 WA * 8
合計 2.5 * 0% = 0 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

n = int(input())
b = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
C = [0] * (10**5+1)
D = [0] * (10**5+1)
for i in range(n):
    D[A[i]] += B[i]
    C[A[i]] = max(C[A[i]], B[i])


t = b
tmp = 0
for i in range(1, 10**5+1):
    if t < D[i] * i:
        idx = i
        break
    t -= D[i] * i
    tmp = max(tmp, (i-1) * C[i])

t = b + tmp
ans0 = 0
for i in range(1, 10**5+1):
    s = min(D[i], t // i)
    t -= s * i
    ans0 += s

ans1 = 0
D[1] += C[idx]
D[idx] -= C[idx]
t = b
for i in range(1, 10**5+1):
    s = min(D[i], t // i)
    t -= s * i
    ans1 += s

D[1] -= C[idx]
D[idx] += C[idx]
ma = max(C[idx+1: 10**5+1])
D[1] = ma
ans2 = 0
t = b
for i in range(1, 10**5+1):
    s = min(D[i], t // i)
    t -= s * i
    ans2 += s
print(max(ans0, ans1, ans2))
0