Submission #1339406

#TimeUsernameProblemLanguageResultExecution timeMemory
1339406athenaBikeparking (EGOI24_bikeparking)C++20
19 / 100
34 ms5088 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    vector<int>arr(n),brr(n);
    for(int i=0;i<n;i++)
        cin>>arr[i];
    for(int i=0;i<n;i++)
        cin>>brr[i];
    vector<int>x(arr.begin(),arr.end());
    vector<int>y(brr.begin(),brr.end());
    vector<pair<int,int>>stk;
    int left=0;
    int ans=0;
    for(int i=0;i<n;i++)//try to put ppl in slots above their pay
    {
       if(y[i])
       {
        if(!stk.empty())
        {
            auto [b,prevleft]=stk.back();
            int c=left-prevleft;
            if(c==0)
            {
                ans++;
                x[b]=0;
                y[i]=0;
                stk.pop_back();
            }
            else
                left++;
        }
        else
            left++;
       }
       if(x[i])
       {
        stk.push_back({i,left});
       }
    }
    for(int i=0;i<n;i++)
    {
        if(x[i]==1&&y[i]==1)
        {
            x[i]=0;
            y[i]=0;
        }
    }
    for(int i=0;i<n;i++)
    {
        if(y[i])
            ans--;
    }
    cout<<ans<<endl;
    return 0;
}
#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...