Submission #1265536

#TimeUsernameProblemLanguageResultExecution timeMemory
1265536Robert_juniorGift Exchange (JOI24_ho_t4)C++20
50 / 100
2596 ms13252 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back  
#define all(x) x.begin(), x.end()
#define ins insert
#define F first
#define S second
const int N = 5e5 + 7, mod = 998244353;
int a[N], b[N];
void solve(){
	int n, q;
	cin>>n;
	for(int i = 1; i <= n; i++){
		cin>>a[i];
	}
	for(int i = 1; i <= n; i++){
		cin>>b[i];
	}
	cin>>q;
	while(q--){
		int l, r;
		cin>>l>>r;
		set<int>s, s1;
		vector<pair<int, int>>v;
		for(int i = l; i <= r; i++){
			s.ins(a[i]);
			v.pb({b[i], a[i]});
			v.pb({a[i], 0});
		}
		sort(all(v));
		reverse(all(v));
		int cur = 0, lst = 0;
		string ans = "Yes\n";
		for(auto it : v){
			if(it.S == 0){
				cur++;
			}
			else{
				cur--;
				if(!cur && lst == it.S){
					ans = "No\n";
				}
				if(cur < 0){
					ans = "No\n";
				}
			}
			lst = it.F;
		}
		cout<<ans;
	}
}
signed main(){
	ios_base :: sync_with_stdio(false);
	cin.tie(0);
    //freopen("area.in", "r", stdin);
    //freopen("area.out", "w", stdout);
    int t = 1;
    //cin>>t;
    while(t--){
        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...