Submission #1206852

#TimeUsernameProblemLanguageResultExecution timeMemory
1206852avohadoSterilizing Spray (JOI15_sterilizing)C++20
0 / 100
284 ms589824 KiB
#include <bits/stdc++.h> using namespace std; #define mod 998244353 #define maxn 5 #define f first #define s second #define ll long long #define pb(x) push_back(x) int n, q, k; int a[maxn]; long long tree[maxn*4]; void bt(int v, int tl, int tr){ if(tl==tr){ tree[v]=a[tl];return; } int m=(tl+tr)/2; bt(v*2, tl, m); bt(v*2+1, m+1, tr); tree[v]=tree[v*2]+tree[v*2+1]; } void u2(int v,int l, int r, int tl, int tr){ if(r<tl||tr<l||tree[v]==0){ return; } if(tl==tr){ tree[v]/=k;return; } int m=(tl+tr)/2; u2(v*2,l, r, tl, m); u2(v*2+1,l,r, m+1, tr); tree[v]=tree[v*2]+tree[v*2+1]; } void u1(int v,int l, int r, int tl, int tr){ if(tl==tr){ tree[v]=r;return; } int m=(tl+tr)/2; if(m<l){ u1(v*2+1, l, r, m+1, tr); }else{ u1(v*2, l, r, tl, m); } tree[v]=tree[v*2]+tree[v*2+1]; } ll res(int v,int l, int r, int tl, int tr){ if(tl>r||tr<l){ return 0; }else if(tl>=l&&tr<=r){ return tree[v]; } int m=(tl+tr)/2; return res(v*2, l, r, tl, m)+ res(v*2+1, l, r, m+1, tr); } void solve(){ cin >> n >> q >> k; for(int i=0; i<n; i++){ cin >> a[i]; } bt(1, 0, n-1); int x, l ,r; for(int i=0; i<q; i++){ cin >> x >> l >> r; if(x==1){ u1(1, l-1, r, 0, n-1); }else if(x==2){ u2(1, l-1, r-1, 0, n-1); }else{ cout << res(1, l-1, r-1, 0, n-1) << "\n"; } } } int main(){ cin.tie(nullptr)->sync_with_stdio(0); int t=1; //cin >> t; while(t--){ solve(); cout << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...