結果

問題 No.2694 The Early Bird Catches The Worm
ユーザー timi
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0