比赛 |
2025暑期集训第2场 |
评测结果 |
WWWTTTTTTT |
题目名称 |
序列操作 |
最终得分 |
0 |
用户昵称 |
Ruyi |
运行时间 |
13.989 s |
代码语言 |
C++ |
内存使用 |
3.80 MiB |
提交时间 |
2025-06-29 17:22:56 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100001],num,l,r;
int main(){
freopen("sequence.in","r",stdin);
freopen("sequence.out","w",stdout);
cin>>n>>m;
for(int i=0;i<n;i++) cin>>a[i];
while(m--){
cin>>num>>l>>r;
if(num==0) for(int i=l;i<=r;i++) a[i]=0;
else if(num==1) for(int i=l;i<=r;i++) a[i]=1;
else if(num==2){
for(int i=l;i<=r;i++){
if(a[i]==0) a[i]=1;
else a[i]=0;
}
}else if(num==3){
int cnt=0;
for(int i=l;i<=r;i++)
if(a[i]==1) cnt++;
cout<<cnt<<endl;
}else{
int cnt=1,maxx=0;
for(int i=l;i<r;i++){
if(a[i]==1){
if(a[i]==a[i+1]) cnt++;
else{
maxx=max(maxx,cnt);
cnt=1;
}
}
}
maxx=max(maxx,cnt);
cout<<maxx<<endl;
}
}
return 0;
}