| 比赛 |
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;
}