#include <iostream>
#include <vector>
using namespace std;
typedef pair<int,int> pii;
bool sub1=true;
bool sub2=true;
int N,Q;
char c;
string s;
int A[300005],B[300005];
bool P[300005];
bool T[105][105];
vector<pii> V[300005];
int INF=1e9;
int R[1200005];
void update(int a, int b, int k=1, int l=0, int r=N-1){
if(l==r)
R[k]=b;
else{
int m=(l+r)/2;
if(a<=m)
update(a,b,2*k,l,m);
else
update(a,b,2*k+1,m+1,r);
R[k]=max(R[2*k],R[2*k+1]);
}
}
int query(int a, int b, int k=1, int l=0, int r=N-1){
if(b<l or r<a)
return -1;
else if(a<=l and r<=b)
return R[k];
else{
int m=(l+r)/2;
return max(query(a,b,2*k,l,m),query(a,b,2*k+1,m+1,r));
}
}
int main(){
cin>>N>>Q;
for(int i=0;i<N;i++){
cin>>c;
P[i]=(c=='1');
if(N<=100 and Q<=100)
T[0][i]=P[i];
}
for(int i=1;i<Q+1;i++){
cin>>s;
if(s=="query"){
cin>>A[i]>>B[i];
A[i]--;
B[i]--;
if(B[i]-A[i]!=1)
sub2=false;
}
else{
cin>>A[i];
A[i]--;
B[i]=-1;
}
}
if(sub1 and N<=100 and Q<=100){
for(int i=1;i<Q+1;i++){
if(B[i]==-1)
T[i][A[i]]=true;
else{
int ans=0;
for(int k=0;k<i;k++){
bool flag=true;
for(int j=A[i];j<B[i];j++)
flag&=T[k][j];
ans+=flag;
}
cout<<ans<<"\n";
}
for(int j=0;j<N;j++)
T[i][j]^=T[i-1][j];
}
}
else if(sub2){
for(int j=0;j<N;j++)
V[j].push_back({0,0});
for(int i=1;i<Q+1;i++){
int k=A[i];
if(B[i]==-1){
if(P[k])
V[k].push_back({i,V[k].back().second+i-V[k].back().first});
else
V[k].push_back({i,V[k].back().second});
P[k]=!P[k];
}
else{
if(P[k])
cout<<V[k].back().second+i-V[k].back().first<<"\n";
else
cout<<V[k].back().second<<"\n";
}
}
}
else{
for(int j=0;j<N;j++){
if(!P[j])
update(j,INF);
else
update(j,0);
}
for(int i=1;i<Q+1;i++){
if(B[i]==-1)
update(A[i],i);
else
cout<<max(0,i-query(A[i],B[i]-1))<<"\n";
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
9 ms |
7416 KB |
Output is correct |
2 |
Correct |
8 ms |
7416 KB |
Output is correct |
3 |
Correct |
8 ms |
7388 KB |
Output is correct |
4 |
Correct |
9 ms |
7416 KB |
Output is correct |
5 |
Correct |
9 ms |
7416 KB |
Output is correct |
6 |
Correct |
9 ms |
7416 KB |
Output is correct |
7 |
Correct |
9 ms |
7544 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
330 ms |
13384 KB |
Output is correct |
2 |
Correct |
353 ms |
13248 KB |
Output is correct |
3 |
Correct |
394 ms |
13628 KB |
Output is correct |
4 |
Correct |
576 ms |
22076 KB |
Output is correct |
5 |
Correct |
602 ms |
25280 KB |
Output is correct |
6 |
Correct |
564 ms |
26116 KB |
Output is correct |
7 |
Correct |
660 ms |
25592 KB |
Output is correct |
8 |
Correct |
645 ms |
26820 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
10 ms |
7416 KB |
Output is correct |
2 |
Correct |
10 ms |
7416 KB |
Output is correct |
3 |
Correct |
10 ms |
7544 KB |
Output is correct |
4 |
Correct |
10 ms |
7416 KB |
Output is correct |
5 |
Correct |
489 ms |
14804 KB |
Output is correct |
6 |
Correct |
573 ms |
15284 KB |
Output is correct |
7 |
Correct |
654 ms |
15580 KB |
Output is correct |
8 |
Correct |
782 ms |
17172 KB |
Output is correct |
9 |
Correct |
326 ms |
10756 KB |
Output is correct |
10 |
Correct |
359 ms |
10956 KB |
Output is correct |
11 |
Correct |
366 ms |
10980 KB |
Output is correct |
12 |
Correct |
791 ms |
15716 KB |
Output is correct |
13 |
Correct |
743 ms |
16908 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
7416 KB |
Output is correct |
2 |
Incorrect |
10 ms |
7472 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
9 ms |
7416 KB |
Output is correct |
2 |
Correct |
8 ms |
7416 KB |
Output is correct |
3 |
Correct |
8 ms |
7388 KB |
Output is correct |
4 |
Correct |
9 ms |
7416 KB |
Output is correct |
5 |
Correct |
9 ms |
7416 KB |
Output is correct |
6 |
Correct |
9 ms |
7416 KB |
Output is correct |
7 |
Correct |
9 ms |
7544 KB |
Output is correct |
8 |
Correct |
330 ms |
13384 KB |
Output is correct |
9 |
Correct |
353 ms |
13248 KB |
Output is correct |
10 |
Correct |
394 ms |
13628 KB |
Output is correct |
11 |
Correct |
576 ms |
22076 KB |
Output is correct |
12 |
Correct |
602 ms |
25280 KB |
Output is correct |
13 |
Correct |
564 ms |
26116 KB |
Output is correct |
14 |
Correct |
660 ms |
25592 KB |
Output is correct |
15 |
Correct |
645 ms |
26820 KB |
Output is correct |
16 |
Correct |
10 ms |
7416 KB |
Output is correct |
17 |
Correct |
10 ms |
7416 KB |
Output is correct |
18 |
Correct |
10 ms |
7544 KB |
Output is correct |
19 |
Correct |
10 ms |
7416 KB |
Output is correct |
20 |
Correct |
489 ms |
14804 KB |
Output is correct |
21 |
Correct |
573 ms |
15284 KB |
Output is correct |
22 |
Correct |
654 ms |
15580 KB |
Output is correct |
23 |
Correct |
782 ms |
17172 KB |
Output is correct |
24 |
Correct |
326 ms |
10756 KB |
Output is correct |
25 |
Correct |
359 ms |
10956 KB |
Output is correct |
26 |
Correct |
366 ms |
10980 KB |
Output is correct |
27 |
Correct |
791 ms |
15716 KB |
Output is correct |
28 |
Correct |
743 ms |
16908 KB |
Output is correct |
29 |
Correct |
11 ms |
7416 KB |
Output is correct |
30 |
Incorrect |
10 ms |
7472 KB |
Output isn't correct |
31 |
Halted |
0 ms |
0 KB |
- |