#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;
vector<pii> a, b;
bool csere(int ind){
if(ind < 0 || a.size() <= ind + 1){
return 0;
}
// volt:
// a[ind] -> b[ind]
// a[ind + 1] -> b[ind + 1]
// lesz:
// a[ind + 1] -> b[ind]
// a[ind] -> b[ind + 1]
if(a[ind] >= b[ind + 1] && a[ind + 1] >= b[ind]){
swap(a[ind], a[ind + 1]);
return 1;
}
return 0;
}
int main() {
int n;
cin >> n;
vector<int> ad(n), ker(n);
for(int &x : ad){
cin >> x;
}
for(int &x : ker){
cin >> x;
}
int q;
cin >> q;
while(q--){
int l, r;
cin >> l >> r;
l--; r--;
a.clear();
b.clear();
for(int i = l; i <= r; i++){
a.push_back({ad[i], i});
b.push_back({ker[i], i});
}
sort(a.begin(), a.end(), greater<pii>());
sort(b.begin(), b.end(), greater<pii>());
/*for(int i = 0; i < a.size(); i++){
cout << a[i].first << " " << a[i].second << " : " << b[i].first << " " << b[i].second << "\n";
}*/
bool jo = 1;
for(int i = 0; i < a.size(); i++){
if(a[i].second == b[i].second){
if(!csere(i - 1)){
if(!csere(i)){
jo = 0;
break;
}
}
}
}
if(jo){
cout << "Yes\n";
} else{
cout << "No\n";
}
}
}
# | 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... |