Submission #1103507

#TimeUsernameProblemLanguageResultExecution timeMemory
1103507tsengangAddk (eJOI21_addk)C++14
0 / 100
2053 ms2396 KiB
#include <bits/stdc++.h> #define ll long long #define ff first #define ss second #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define pb push_back #define ertunt return using namespace std; ll n,q,k; struct segtree{ int n; vector<ll>d; segtree(ll n){ d.resize(4*n); build(1,1,n); } void build(ll v,ll l,ll r){ if(l==r){ d[v]=0; return; } ll m=(l+r)/2; build(v*2,l,m); build(v*2+1,m+1,r); d[v]=d[v*2]+d[v*2+1]; } ll query(ll v,ll l,ll r,ll L,ll R){ if(L>R||l>R||L>r) return 0; if(L<=l&&r<=R){ return d[v]; } ll m=(l+r)/2; return query(v*2,l,m,L,R)+query(v*2+1,m+1,r,L,R); } void update(ll v,ll l,ll r,ll pos,ll val){ if(pos<l||r<pos) return; if(l==r){ d[v]=val; return; } ll m=(l+r)/2; update(v*2,l,m,pos,val); update(v*2+1,m+1,r,pos,val); d[v]=d[v*2]+d[v*2+1]; } void updater(ll node, ll L, ll R, ll l, ll r, ll val){ if (L > R || L > r || R < l) return; if (L == R){ d[node] /= val; return; } ll mid = (L + R) / 2; updater(node*2, L, mid, l, r, val); updater(node*2 + 1, mid + 1, R, l, r, val); d[node] = d[node*2] + d[node*2+1]; } void update2(ll v,ll l,ll r,ll pos){ if(pos<l||r<pos) return; if(l==r){ d[v]/=k; return; } ll m=(l+r)>>1; update2(v*2,l,m,pos); update2(v*2+1,m+1,r,pos); d[v]=d[v*2]+d[v*2+1]; } }; int main() { ll n, k; cin >> n >> k; ll a[n+1]; ll b[n+1]; segtree gang(n); for(ll i = 0; i < n; i++){ cin >> a[i]; gang.update(1,1,n,i,a[i]); } ll q; cin >> q; while(q--){ ll s; cin >> s; if(s==2){ ll l,r,m; cin >> l >> r >> m; ll ans = 0; for(ll i = l-1; i < r-m; i++){ ans+=gang.query(1,1,n,i,i+m); } cout << ans << '\n'; } if(s == 1){ cin >> s; } } }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:75:8: warning: unused variable 'b' [-Wunused-variable]
   75 |     ll b[n+1];
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...