Submission #264862

#TimeUsernameProblemLanguageResultExecution timeMemory
264862GoolakhSterilizing Spray (JOI15_sterilizing)C++17
100 / 100
298 ms5384 KiB
// FUCKED UP FUCKED UP FUCKED UP FUCKED UP FUCKED UP #include <bits/stdc++.h> using namespace std; #pragma GCC optimize("O2") #define F first #define S second #define pb push_back #define SZ(x) (ll)(x.size()) #define all(x) x.begin(),x.end() #define MP make_pair typedef long long ll; typedef long double ld; typedef pair<ll,ll> pll; //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const ll maxn=1e5+10, maxm=1e6+10, lg=10, mod=1e9+7, inf=1e18; #define lc (v<<1) #define rc (lc^1) #define md ((s+t)>>1) ll n,q,k,sum[maxn<<2]; void spray(ll l,ll r,ll s=0,ll t=n,ll v=1){ if(l>=t || r<=s || sum[v]==0) return; if(t-s==1) return void(sum[v]/=k); spray(l,r,s,md,lc), spray(l,r,md,t,rc); sum[v]=sum[lc]+sum[rc]; } void goz(ll i,ll x,ll s=0,ll t=n,ll v=1){ if(t-s==1) return void(sum[v]=x); (i<md ? goz(i,x,s,md,lc):goz(i,x,md,t,rc)); sum[v]=sum[lc]+sum[rc]; } ll get(ll l,ll r,ll s=0,ll t=n,ll v=1){ if(l>=t || r<=s) return 0; if(l<=s && r>=t) return sum[v]; return get(l,r,s,md,lc)+get(l,r,md,t,rc); } int main(){ ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n>>q>>k; for(int i=0,x;i<n;i++) cin>>x, goz(i,x); while(q--){ ll ty,l,r; cin>>ty>>l>>r; if(ty==1) goz(--l,r); if(ty==2 && k>=2) spray(--l,r); if(ty==3) cout<<get(--l,r)<<'\n'; } return 0; } // a denial a denial a denial a denial a denial a denial
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...