Submission #1284893

#TimeUsernameProblemLanguageResultExecution timeMemory
1284893Faisal_SaqibGift Exchange (JOI24_ho_t4)C++20
0 / 100
61 ms572 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];
bool recur(int l,int r)
{
    if(l==r)
        return 0;
    if(l+1==r)
        return a[tmp1[l].second]>=tmp1[r].first;
    bool ans=a[tmp1[l].second]>=tmp1[r].first;
    for(int j=l;j<r and !ans;j++)
    {
        ans|=(recur(l,j)&recur(j+1,r));
    }
    return ans;
}
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;
    // [l,r] 
    // shift left
    // [l-1,r,l]
    while(q--)
    {
        ll l,r;
        cin>>l>>r;
        sz=0;
        // set<pair<ll,ll>> tep;
        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=(a[tmp1[1].second]>tmp1[sz].first);
        // for(int i=sz-2;i>=2;i--)
        // {
        //     pos|=(a[tmp1[1].second]>tmp1[i].first  and a[tmp1[i+1].second]>tmp1[sz].first);
        // }
        cout<<(recur(1,sz)?"Yes":"No")<<endl;
    }
}
// 5 3 6
// 1 2 4

Compilation message (stderr)

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