Submission #1364829

#TimeUsernameProblemLanguageResultExecution timeMemory
1364829mrasool1665Street Lamps (APIO19_street_lamps)C++20
0 / 100
34 ms804 KiB
//MRasool kheyri
//iran -> khorasan -> ferdows -> Baghestan
//14/2/1405
//vasat azmoonima...
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
#define el '\n'
#define mid (l+r)/2
#define lid id<<1
#define rid lid|1
const ll maxn = 2e6 + 100 ;
const ll oo = 1e17 + 100 ;
ll n , q , a[maxn] , b[maxn] ;
ll node[maxn] ;
void merge(ll l , ll r , ll id){
    node[id] = max(node[lid],node[rid]) ;
    return ;
}
void build(ll l , ll r , ll id){
    if(l+1 == r){
        node[id] = a[l] ? 0 : oo ;
        return ;
    }
    build(l,mid,lid) ;
    build(mid,r,rid) ;
    merge(l,r,id) ;
    return;
}
void update(ll s , ll e , ll l , ll r , ll id , ll x){
    if(e <= l || r <= s){return;}
    if(s <= l && r <= e){
        node[id] = x ;
        return ;
    }
    update(s,e,l,mid,lid,x) ;
    update(s,e,mid,r,rid,x) ;
    merge(l,r,id) ;
    return ;
}
ll get(ll s , ll e , ll l , ll r , ll id){
    if(e <= l || r <= s){
        return -oo ;
    }
    if(s <= l && r <= e){
        return node[id] ;
    }
    return max(get(s,e,l,mid,lid),get(s,e,mid,r,rid)) ;
}
void solve(){
    cin>>n>>q ;
    for(ll i = 0 ; i < n ; i++){
        char ch ;
        cin>>ch ;
        a[i] = ch-'0' ;
    }
    build(0,n,1) ;
    for(ll _ = 0 ; _ < q ; _++){
        string s ;
        cin>>s ;
        if(s == "query"){
            ll l , r ;
            cin>>l>>r ;
            l-- , r-- ;
            ll k = get(l,r,0,n,1) ;
            cout<<(k == oo ? 0 : _-k+1)<<el ;
        }
        else{
            ll x ;
            cin>>x ;
            update(x,x+1,0,n,1,_) ;
        }
    }
    return ;
}
int main(){
    ios_base::sync_with_stdio(0) , cin.tie(nullptr) , cout.tie(nullptr) ;
    ll t = 1 ;
    //cin>>t ;
    while(t--){
        solve() ;
    }
    return 0 ;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...