結果
問題 |
No.2694 The Early Bird Catches The Worm
|
ユーザー |
![]() |
提出日時 | 2024-03-02 19:10:11 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 222 ms / 2,000 ms |
コード長 | 718 bytes |
コンパイル時間 | 966 ms |
コンパイル使用メモリ | 82,396 KB |
実行使用メモリ | 169,088 KB |
最終ジャッジ日時 | 2024-09-29 16:25:54 |
合計ジャッジ時間 | 12,997 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 72 |
ソースコード
from collections import deque mod=998244353 from sys import stdin, setrecursionlimit input = stdin.readline readline = stdin.readline import math N,H=map(int, stdin.readline().split()) A=list(map(int, input().split())) B=list(map(int, input().split())) B.append(10**10) AA=[0] for a in A: AA.append(AA[-1]+a) BB=[0];C=[0] for i in range(N+1): BB.append(BB[-1]+(i+1)*B[i]) C.append(C[-1]+B[i]) # print(AA) # print(BB) # print(C) if min(B)>H: print(0) exit() ans=0 for i in range(N): l,r=i,N+1 if B[i]>H: continue while abs(l-r)>1: mid=(l+r)//2 c=BB[mid]-BB[i] cc=C[mid]-C[i] d=c-cc*i if d<=H: l=mid else: r=mid e=AA[l]-AA[i] ans=max(ans,e) print(ans)