結果
問題 | No.2694 The Early Bird Catches The Worm |
ユーザー |
|
提出日時 | 2024-03-22 22:55:16 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 193 ms / 2,000 ms |
コード長 | 604 bytes |
コンパイル時間 | 2,126 ms |
コンパイル使用メモリ | 196,232 KB |
最終ジャッジ日時 | 2025-02-20 12:19:39 |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 72 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main () { using ll = long long; int N; ll H; cin >> N >> H; ll ans = 0; std::vector<ll> A(N), B(N); for (auto& a : A) cin >> a; for (auto& b : B) cin >> b; int r = 0; ll hsum = 0; ll asum = 0; ll bsum = 0; for (int l = 0; l < N; l ++) { while (r < N) { ll nh = hsum + (r - l + 1) * B[r]; if (nh > H) { break; } else { hsum = nh; asum += A[r]; bsum += B[r]; r ++; } } ans = max(ans, asum); if (l < r) { asum -= A[l]; hsum -= bsum; bsum -= B[l]; } else{ r ++; } } cout << ans << endl; }