比赛 2026.8.26 评测结果 WWAWWWAAWWWWWWWWWWWW
题目名称 interval 最终得分 15
用户昵称 郑霁桓 运行时间 2.156 s
代码语言 C++ 内存使用 9.06 MiB
提交时间 2026-08-26 12:48:36
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,q,l,r,lt,a[500005],b[500005],s1[500005],s2[500005],op;
vector<pair<int,int> >v;
int main(){
    freopen("intervallavretni.in","r",stdin);
    freopen("intervallavretni.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>q;
    for(int i=1;i<=n;i++) cin>>a[i]>>b[i];
    if(n<=2000&&q<=2000){
        while(q--){
            cin>>l>>r,op=1;
            v.clear(),l++,r++;
            for(int i=l;i<=r;i++) v.push_back({b[i],a[i]});
            sort(v.begin(),v.end()),lt=1;
            for(int i=0;i<v.size();i++){
                if(v[i].first>v[i-1].first+1) lt=v[i].first;
                if(v[i].second<lt){
                    op=0;
                    break;
                }
            }
            cout<<op<<" ";
        }
    }else{
        for(int i=1;i<=n;i++){
            s1[i]=s1[i-1]+b[i];
            s2[i]=s2[i-1]+a[i];
        }
        while(q--){
            cin>>l>>r;
            if(s1[r]-s1[l-1]==2*(r-l+1)&&s2[r]-s2[l-1]==r-l+1) cout<<"0 ";
            else cout<<"1 ";
        }
    }
    return 0;
}