Submission #1195626

#TimeUsernameProblemLanguageResultExecution timeMemory
1195626veehjBikeparking (EGOI24_bikeparking)C++20
25 / 100
78 ms5184 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fi first
#define se second
#define pb push_back
#define sz(a) (ll) a.size()
#define all(x) (x).begin(), (x).end()
#define rep(i, a, b) for(ll i=a; i<b; i++)
#define rrep(i, a, b) for(ll i=a; i>=b; i--)
#define vl vector<ll>
#define vpll vector<pair<ll, ll>>
#define vvl vector<vector<ll>>
#define pll pair<ll, ll>

void f() {
  ll n; cin >> n;
  vl x(n), y(n);
  ll rem=0;
  for(auto& u : x) cin >> u;
  for(auto& u : y){ cin >> u; rem+=u; }
  ll curr=0, up=y[0], wait=0, ans=0;
  rep(i, 0, n){
    wait+=curr;
    curr=up;
    if(i!=n-1) up=y[i+1];
    else up=0;
    ll give=min(up, x[i]);
    ans+=give;
    x[i]-=give;
    up-=give;
    rem-=give;
    give=min(curr, x[i]);
    x[i]-=give;
    curr-=give;
    rem-=give;
    give=min(wait, x[i]);
    x[i]-=give;
    wait-=give;
    rem-=give;
    ans-=give;
    ll j=i+2;
    while(x[i] && rem){
      give=min(y[j], x[i]);
      y[j]-=give;
      x[i]-=give;
      rem-=give;
      ans+=give;
      j++;
    }
  }
  cout << ans << endl;
}

int main() {
  int tc = 1;
  // cin >> tc;
  for (int i = 1; i <= tc; i++) {
    // cout << '#' << i << endl;
    f();
    cout << endl;
  }
}
#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...