Submission #1172595

#TimeUsernameProblemLanguageResultExecution timeMemory
1172595ezzzayBikeparking (EGOI24_bikeparking)C++20
49 / 100
1094 ms25404 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5+5;
int a[N];
int b[N];
signed main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)cin>>b[i];
    int s=0;
    set<int>st;
    for(int i=1;i<=n;i++){
        st.insert(i);
    }
    for(int i=n;i>=1;i--){
        auto it= st.upper_bound(i);
        vector<int>del;
        while(it!=st.end()){
            int j=*it;
            int x=min(a[i],b[j]);
            s+=x;
            a[i]-=x;
            b[j]-=x;
            del.pb(j);
            it++;
            if(a[i]==0)break;
        }
        //for(auto j:del)st.erase(j);
    }
    for(int i=1;i<=n;i++){
        int x=min(a[i],b[i]);
        a[i]-=x;
        b[i]-=x;
        s-=b[i];
    }
    cout<<s;
}
#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...