Submission #1284875

#TimeUsernameProblemLanguageResultExecution timeMemory
1284875Muhammad_AneeqGift Exchange (JOI24_ho_t4)C++20
50 / 100
2594 ms10616 KiB
#include <bits/stdc++.h>
using namespace std;
inline void solve()
{
    int n;
    cin>>n;
    int a[n];
    for (auto& i:a)
        cin>>i;
    int b[n];
    for (auto&i:b)
        cin>>i;
    int q;
    cin>>q;
    while (q--)
    {
        int l,r;
        cin>>l>>r;
        l--;r--;
        set<int>s,pri;
        set<pair<int,int>>lk;
        for (int i=l;i<=r;i++)
        {
            s.insert(a[i]);  
            lk.insert({-b[i],i});
        }
        bool w=1;
        for (auto [j,i]:lk)
        {
            bool pr=(s.find(a[i])!=s.end());
            s.erase(a[i]);
            auto z=s.lower_bound(b[i]);
            if (z!=s.end())
                s.erase(*z);
            else
            {
                z=pri.lower_bound(b[i]);
                if (z!=pri.end())
                {
                    pri.erase(*z);
                }
                else
                {
                        w=0;
                    break;
                }
            }
            if (pr)
                pri.insert(a[i]);
        }
        cout<<(w?"Yes":"No")<<endl;
    }
}
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int t=1;
    for (int i=1;i<=t;i++)
    {
        solve();
    }
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...