結果
| 問題 | No.2694 The Early Bird Catches The Worm |
| コンテスト | |
| ユーザー |
koheijkt
|
| 提出日時 | 2026-05-11 16:34:21 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 129 ms / 2,000 ms |
| コード長 | 1,486 bytes |
| 記録 | |
| コンパイル時間 | 328 ms |
| コンパイル使用メモリ | 84,992 KB |
| 実行使用メモリ | 131,560 KB |
| 最終ジャッジ日時 | 2026-05-11 16:34:36 |
| 合計ジャッジ時間 | 13,294 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 72 |
ソースコード
import sys, math
sys.setrecursionlimit(10**8)
sys.set_int_max_str_digits(0)
INF = 1e18
MOD = 998244353
from bisect import bisect_left, bisect_right
from collections import deque, defaultdict, Counter
from itertools import product, combinations, permutations, groupby, accumulate
from heapq import heapify, heappop, heappush
input = sys.stdin.readline
def I(): return input().rstrip()
def II(): return int(input().rstrip())
def IS(): return input().rstrip().split()
def MII(): return map(int, input().rstrip().split())
def LI(): return list(input().rstrip())
def TII(): return tuple(map(int, input().rstrip().split()))
def LII(): return list(map(int, input().rstrip().split()))
def LSI(): return list(map(str, input().rstrip().split()))
def GMI(): return list(map(lambda x: int(x) - 1, input().rstrip().split()))
def kiriage(a, b): return (a+b-1)//b
N, H = MII()
A = LII()
B = LII()
rB = list(accumulate(B, initial=0))
que = deque()
L = 0
ans = 0
satisfaction = 0
fatigue = 0
for i in range(N):
a, b = A[i], B[i]
# とりあえず append する
que.append(i)
fatigue += (L + 1)*b
L += 1
satisfaction += a
# H以下になるように調整
while fatigue > H:
l = que[0]
r = que[-1]
fatigue -= rB[r + 1] - rB[l]
satisfaction -= A[l]
que.popleft()
L -= 1
# i追加時の最善状態にできた
#print(i, que)
if satisfaction > ans:
ans = satisfaction
print(ans)
koheijkt