Submission #1308799

#TimeUsernameProblemLanguageResultExecution timeMemory
1308799timeflewGift Exchange (JOI24_ho_t4)C++20
10 / 100
2595 ms3536 KiB
#include<bits/stdc++.h>
using namespace std;

const int mxN=5e5;

int a[mxN], b[mxN], n, q;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);	
	cin>>n;
	for(int i=0; i<n; i++) 
		cin>>a[i];
	for(int i=0; i<n; i++) 
		cin>>b[i];
	cin>>q;
	while(q--) {
		int l, r;
		cin>>l>>r;
		n=r-l+1;
		l--, r--;
		vector<pair<int, int>> v, v1;
		for(int i=l; i<=r; i++)
			v.push_back({a[i], i});
		for(int i=l; i<=r; i++)
			v1.push_back({b[i], i});
		sort(v.begin(), v.end());
		sort(v1.begin(), v1.end());
		bool ok=1;
		for(int i=1; i<n; i++) {
			if(v[i].second==v1[i].second) {
				ok&=(v[i-1].first>=v1[i].first);
			} else {
				ok&=(v[i].first>=v1[i].first);
			}
		}
		if(v[0].second==v1[0].second)
			ok&=(v[0].first>=v1[1].first&&v[1].first>=v[0].first);
		else
			ok&=(v[0].first>=v1[0].first);
		cout<<(ok?"Yes\n":"No\n");
	}
	return 0;
}
//50
#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...