#pragma GCC target("avx2")
#pragma GCC optimization("O3")
#pragma GCC optimization("unroll-loops")
#include<bits/stdc++.h>
//#include "aliens.h"
#define rc(x) return cout<<x<<endl,0
#define pb push_back
#define mkp make_pair
#define in insert
#define er erase
#define fd find
#define fr first
#define sc second
typedef long long ll;
typedef long double ld;
const ll INF=0x3f3f3f3f3f3f3f3f;
const ll llinf=(1LL<<62);
const int inf=(1<<30);
const int nmax=3e5+50;
const int mod=1e9+7;
using namespace std;
int n,q,a[nmax],nr[105][105],x,y,i,j,ta[nmax],tt[nmax],rs,sb2,t,b[nmax],sb3;
string s;
char c;
vector<pair<int,int> >qr;
int main()
{
//freopen("sol.in","r",stdin);
//freopen("sol.out","w",stdout);
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
cin>>n>>q;
for(i=1;i<=n;i++)
{
cin>>c;
a[i]=c-'0';
b[i]=a[i];
}
sb2=1,sb3=1;
for(i=1;i<=q;i++)
{
cin>>s;
if(s[0]=='t')
{
cin>>x;
b[x]^=1;
if(!b[x])sb3=0;
qr.pb(mkp(x,0));
}
else
{
cin>>x>>y;
qr.pb(mkp(x,y));
if(x+1!=y)sb2=0;
}
}
if(sb2)
{
//cout<<1<<endl;
for(i=1;i<=q;i++)
{
x=qr[i-1].fr,y=qr[i-1].sc;
if(!y)
{
a[x]^=1;
if(!a[x])tt[x]+=i-ta[x];
else ta[x]=i;
}
else
{
rs=tt[x];
if(a[x])rs+=i-ta[x];
cout<<rs<<'\n';
}
}
}
else if(sb3)
{
for(i=1;i<=q;i++)
{
x=qr[i].fr,y=qr[i].sc;
if(!y)
{
a[x]^=1;
if(!a[x])tt[x]+=i-ta[x]+1;
else ta[x]=i+1;
}
else
{
rs=tt[x];
if(a[x])rs+=i-ta[x]+1;
cout<<rs<<'\n';
}
}
}
else
{
for(t=0;t<q;t++)
{
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(!a[j])break;
nr[i][j]++;
}
}
x=qr[t].fr,y=qr[t].sc;
if(!y)a[x]^=1;
else cout<<nr[x][y-1]<<'\n';
}
}
return 0;
}
/*
5 11
10010
q 1 2
q 2 3
q 3 4
q 4 5
q 5 6
t 1
q 1 2
t 2
q 2 3
t 2
q 2 3
*/
Compilation message
street_lamps.cpp:2:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
#pragma GCC optimization("O3")
street_lamps.cpp:3:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
#pragma GCC optimization("unroll-loops")
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
380 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
376 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
376 KB |
Output is correct |
6 |
Incorrect |
2 ms |
376 KB |
Output isn't correct |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
87 ms |
4584 KB |
Output is correct |
2 |
Correct |
92 ms |
4584 KB |
Output is correct |
3 |
Correct |
99 ms |
4708 KB |
Output is correct |
4 |
Correct |
130 ms |
8432 KB |
Output is correct |
5 |
Correct |
131 ms |
7392 KB |
Output is correct |
6 |
Correct |
119 ms |
8252 KB |
Output is correct |
7 |
Correct |
141 ms |
6888 KB |
Output is correct |
8 |
Correct |
145 ms |
7220 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
376 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
760 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
380 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
376 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
376 KB |
Output is correct |
6 |
Incorrect |
2 ms |
376 KB |
Output isn't correct |
7 |
Halted |
0 ms |
0 KB |
- |