結果

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

ソースコード

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],i] for i in range(n)]
x.sort()
a = [x[i][0]*x[i][1] for i in range(n)]
ans = 0

for i in range(n-1):
    x[i+1][1] += x[i][1]
    a[i+1] += a[i]

for i in range(n):
    l,r = -1,n
    u = x[i][2]
    bb = b-s[u]
    cc = min(b,s[u])
    
    if bb <= 0:
        ans = max(ans,cc)
        continue
    
    while r-l > 1:
        mid = (l+r)//2
        
        if i <= mid:
            z = c[u]*s[u]
        else:
            z = 0
        
        if a[mid]-z <= bb:
            l = mid
        else:
            r = mid
    
    if i <= l:
        z = s[u]
    else:
        z = 0
    
    cc += x[l][1]-z
    z *= c[u]
    
    bb -= a[l]-z
    
    if r != n:
        cc += bb//x[r][0]
    
    ans = max(ans,cc)

print(ans)
0