| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1360101 | Faisal_Saqib | 가로등 (APIO19_street_lamps) | C++20 | 195 ms | 11252 KiB |
#include <iostream>
using namespace std;
const int N=3e5+10;
int s[N],og[N],lst[N],sz[N];
int sm[N][3];
int seg[N<<2],n;
void set(int x,int v)
{
for(seg[x+=n]=v;x>1;x/=2)
{
seg[x>>1]=max(seg[x],seg[x^1]);
}
}
int qry(int l,int r)
{
int ans=0;
for(l+=n,r+=n;l<r;l/=2,r/=2)
{
if(l&1)ans=max(ans,seg[l++]);
if(r&1)ans=max(ans,seg[--r]);
}
return ans;
}
void solve()
{
int q;
cin>>n>>q;
for(int i=0;i<n;i++)
{
char c;
cin>>c;
og[i]=c-'0';
lst[i]=0;
if(og[i])
set(i,0);
else
set(i,q+2);
sz[i]=0;
s[i]=c-'0';
}
for(int i=1;i<=q;i++)
{
string cs;
cin>>cs;
if(cs[0]=='t')
{
int k;
cin>>k;
k--;
sm[k][sz[k]%2]+=(i-lst[k]);
sz[k]++;
s[k]^=1;
if(s[k])set(k,i);
}
else
{
int a,b;
cin>>a>>b;
a--;
b--;
cout<<max(0,i-qry(a,b))<<endl;;
}
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t=1;
// cin>>t;
while(t--)solve();
}| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
