Submission #1151657

#TimeUsernameProblemLanguageResultExecution timeMemory
1151657SyedSohaib_123Bikeparking (EGOI24_bikeparking)C++20
16 / 100
75 ms23876 KiB
#include <bits/stdc++.h>

using namespace std;

#define append push_back
#define int long long

const int N=2e5+10,LG=21;
int mod=998244353;

void solve(int tst){
    int n;
    cin>>n;
    vector<int>y(n+1,0),x=y;
    for(int i=1;i<=n;i++) cin>>x[i];
    for(int i=1;i<=n;i++) cin>>y[i];
    int ans=0;
    int past=0;
    vector<int>sat(n+1,0),ang(n+1,0);
    multiset<int>s;
    int t=y[1];
    int l=x[1];
    for(int i=1;i<=n;i++){
        int a=min(past,y[i]);
        past-=a;
        ans+=a;
        y[i]-=a;
        a=min(y[i],x[i]);
        sat[i]=a;
        y[i]-=a;
        x[i]-=a;
        ang[i]=y[i];
        if(ang[i]) s.insert(ang[i]);
        if(sat[i]) s.insert(sat[i]+ang[i]);
        ans-=y[i];
        past+=x[i];
    }
    if(n==2){
        cout<<ans<<endl;return;
    }
    cout<<t*(n-1)+min(0ll,l-t*2)<<endl;return;
}

signed main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t = 1;
    // cin >> t;
    for(int i=1;i<=t;i++)
        solve(i);
}
#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...