比赛 2026.8.26 评测结果 WWWTTTWWWTTTTTTTTTTT
题目名称 interval 最终得分 0
用户昵称 zcx 运行时间 29.592 s
代码语言 C++ 内存使用 5.55 MiB
提交时间 2026-08-26 12:23:35
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

const int N = 2.5e5 + 5;

int n,q,flag = 0;
int a[N],b[N],t[N];
int p1[N],p2[N];

signed main()
{
    freopen("intervallavretni.in","r",stdin);
    freopen("intervallavretni.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>q;
    for(int i = 1;i <= n;i++) cin>>a[i]>>b[i],flag = (flag || (b[i] > 2));
    if(flag){
        while(q--){
            int l,r,ff = 0,maxn = 0;cin>>l>>r;
            for(int i = 1;i <= n;i++) t[i] = 0;
            for(int i = l;i <= r;i++){
                if(b[i] > n){
                    ff = 1;
                    break;
                }
                t[b[i]] = 1;
                maxn = max(maxn,b[i]);
            }
            for(int i = 1;i <= maxn;i++) if(!t[i]) ff = 1;
            if(ff) cout<<0<<" ";
            else cout<<1<<" ";
        }
    }else{
        for(int i = 1;i <= n;i++) p1[i] = p1[i - 1] + (a[i] == 1),p2[i] = p2[i - 1] + (b[i] == 1);
        while(q--){
            int l,r;cin>>l>>r;
            if(p2[l - 1] == p2[r] && (p1[r] - p1[l - 1])) cout<<0<<" ";
            else cout<<1<<" ";
        }
    }
    
    
    return 0;
}