Submission #1284957

#TimeUsernameProblemLanguageResultExecution timeMemory
1284957Faisal_SaqibGift Exchange (JOI24_ho_t4)C++20
0 / 100
2608 ms325188 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+10;
int a[N],b[N],sz=0;
pair<int,int> tmp1[N],tmp[N];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    ll n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        cin>>b[i];
    }
    ll q;
    cin>>q;
    while(q--)
    {
        ll l,r;
        cin>>l>>r;
        sz=0;
        set<pair<ll,ll>> tep;
        set<ll> rem;
        for(int i=l;i<=r;i++)
        {
            tep.insert({a[i],i});
            // tmp[++sz]=a[i];
            tmp1[++sz]={b[i],i};
        }
        // sort(tmp+1,tmp+sz+1);
        sort(tmp1+1,tmp1+sz+1);
        // int cur=2;
        bool pos=1;
        for(int i=sz;i>=1;i--)
        {
            auto it=tep.lower_bound({tmp1[i].first,-1});
            if(it!=end(tep) and it->second==tmp1[i].second)
            {
                it++;
            }
            // auto it1=
            if(it==end(tep))
            {
                auto it1=rem.lower_bound(tmp1[i].first);
                if(it1!=end(rem))
                {
                    rem.erase(it1);
                    continue;
                }
                pos=0;
                break;
            }
            int j=tmp1[i].second;
            if(tep.find({a[j],j})!=tep.end())
            {
                tep.erase({a[j],j});
                rem.insert(a[j]);
            }
            tep.erase(it);
        }
        // for(int i=1;i<=sz;i++)
        // {

        // }
        cout<<(pos?"Yes":"No")<<endl;
    }
}
// 5 3 6
// 1 2 4

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:12:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     freopen("input.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:13:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     freopen("output.txt", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...