제출 #1206415

#제출 시각아이디문제언어결과실행 시간메모리
1206415Aiperiii가로등 (APIO19_street_lamps)C++20
0 / 100
145 ms13984 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define all(x) x.begin(),x.end() #define ff first #define ss second #define pb push_back const int N=3e5+5; int t[N*4]; void build(int v,int tl,int tr){ t[v]=1e18; if(tl!=tr){ int tm=(tl+tr)/2; build(v*2,tl,tm); build(v*2+1,tm+1,tr); } } void update(int v,int tl,int tr,int pos,int x){ if(tl==tr){ t[v]=x; return; } int tm=(tl+tr)/2; if(pos<=tm) update(v*2,tl,tm,pos,x); else update(v*2+1,tm+1,tr,pos,x); t[v]=max(t[v*2],t[v*2+1]); } int get(int v,int tl,int tr,int l,int r){ if(r<tl or tr<l)return -1e18; if(l<=tl && tr<=r) return t[v]; int tm=(tl+tr)/2; return max(get(v*2,tl,tm,l,r),get(v*2+1,tm+1,tr,l,r)); } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n,q; cin>>n>>q; vector <int> t(n+1),sum(n+1); string st; cin>>st; st=' '+st; build(1,1,n); for(int i=1;i<=n;i++){ if(st[i]=='1'){ update(1,1,n,i,0); } } for(int i=1;i<=q;i++){ string s; int a,b; cin>>s; if(s=="toggle"){ cin>>a; update(1,1,n,a,i); } else{ cin>>a>>b; int ls=get(1,1,n,a,b); if(ls==1e18)cout<<0<<"\n"; else cout<<i-ls<<"\n"; } } } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...