結果

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

ソースコード

diff #
raw source code


n = int(input())
b = int(input())
c = list(map(int,input().split()))
s = list(map(int,input().split()))
x = [[c[i],-s[i]] for i in range(n)]
x.sort(reverse=True)
out = 0
m = 0
ans = 0


while b and len(x):
    w,p = x.pop()
    p *= -1
    
    if w*p <= b:
        m = max(m,w*p-p)
        b -= w*p
        out += p
    
    else:
        bb = b-min(b,p)
        ans = out+min(b,p)
        aa = 0
        cc = 0
        
        for i in range(len(x)-1,-1,-1):
            if aa-x[i][0]*x[i][1] <= bb:
                aa -= x[i][0]*x[i][1]
                cc -= x[i][1]
            else:
                cc += (bb-aa)//x[i][0]
                break
        ans = ans+cc
        
        x.append([w,-p])
        b += m
        aa = 0
        cc = 0
        
        for i in range(len(x)-1,-1,-1):
            if aa-x[i][0]*x[i][1] <= b:
                aa -= x[i][0]*x[i][1]
                cc -= x[i][1]
            else:
                cc += (b-aa)//x[i][0]
                break
        
        ans = max(ans,out+cc)
        
        break

ans = max(ans,out)

print(ans)
0