제출 #1337752

#제출 시각아이디문제언어결과실행 시간메모리
1337752tsengangBitaro the Brave 2 (JOI25_ho_t2)C++20
22 / 100
65 ms29376 KiB
#include <bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define ertunt return
using namespace std;
ll mod = 998244353;
vector<ll> adj[600007];
vector<ll> f(600005), inv(600005);
ll modpow(ll a, ll b){
    ll r = 1;
    while(b){
        if(b & 1){
            r *= a;
            r %= mod;
        }
        a *= a;
        a %= mod;
        b >>= 1;
    }
    ertunt r;
}
ll nCk(ll n, ll k){
    if(k < 0 || k > n) ertunt 0;
    ertunt f[n] * inv[k] % mod * inv[n - k] % mod;
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    ll n;
    cin >> n;
    vector<ll>a(n),b(n);
    for(auto &x : a)cin >> x;
    for(auto &x : b)cin >> x;
    vector<ll>pre(n+1);
    pre[0] = a[0];
    ll cur = a[0]+b[0];
    for(ll i = 1; i < n; i++){
        pre[i] = pre[i-1];
        pre[i] += max(0ll,a[i]-cur);
        cur += b[i] + max(0ll,a[i]-cur);
    }
    vector<ll>suf(n+2),val(n+2);
    suf[n-1] = a[n-1];
    cur = b[n-1];
    val[n-1] = cur;
    for(ll i = n-2; i >= 0; i--){
        suf[i] = max(a[i],suf[i+1]-b[i]);
        cur += b[i];
        val[i] = val[i+1] + cur;
    }

    ll l = 0,r = 1e18;
    while(l < r){
        ll m = (l+r)>>1;
        ll p = -1;
        for(ll i = 0; i < n; i++){
            if(suf[i] <= m){
                p = i;
                break;
            }
        }
        if(p == -1){
            l = m+1;
            continue;
        }
        if(p == 0){
            r = m;
            continue;
        }
        if(val[p] + m >= pre[p-1]) r = m;
        else l = m+1;
    }
    cout << l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...