#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |