제출 #1341504

#제출 시각아이디문제언어결과실행 시간메모리
1341504vtnooGift Exchange (JOI24_ho_t4)C++20
큐에 대기중
0 ms0 KiB
#include <bits/stdc++.h>
#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i>=(k);i--)
#define all(x) x.begin(),x.end()
#define sz(a) ((int)a.size())
#define pb push_back
using namespace std;
typedef long long ll;

bool cmp(pair<int,int>a,pair<int,int>b){
    if(a.second==b.second)return a.first<b.first;
    return a.second<b.second;
}

int main(){
    int n;cin>>n;
    vector<int>a(n),b(n);
    L(i,0,n-1)cin>>a[i];
    L(i,0,n-1)cin>>b[i];
    int q;cin>>q;
    while(q--){
        int L,R;cin>>L>>R;L--,R--;
        vector<pair<int,int>>ranges;
        L(i,L,R){
            ranges.pb({a[i],b[i]});
        }
        bool can=true;
        sort(all(ranges),cmp);
        int m=sz(ranges);
        if(m%2==1){
            cout<<"No"<<endl;
            continue;
        }
        for(int i=m-1;i>=0;i-=2){
            if(!(ranges[i-1].first>=ranges[i].second)){
                can=false;
            }
        }
        if(can)cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
}