Submission #1172732

#TimeUsernameProblemLanguageResultExecution timeMemory
1172732dbekarysAddk (eJOI21_addk)C++20
0 / 100
2095 ms1904 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define pll pair<long long,long long> #define int long long using namespace std; /*using namespace __gnu_pbds; template<class T> using ordered_set=tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;*/ const int mod=1e9+7; const int N=1e5+7; const long long inf=1e18; int a[N],t[N*4],add[N*4]; /*void push( int v, int tl, int tr ) { if( add[v] == 0 ) return; t[v] += (tr - tl + 1) * add[v]; if( tl < tr ) { add[v + v] += add[v]; add[v + v + 1] += add[v]; } add[v] = 0; }*/ void build(int x,int l,int r){ if(l==r){ t[x]=a[l]; return; } int m=(l+r)/2; build(x+x,l,m); build(x+x+1,m+1,r); t[x]=t[x+x]+t[x+x+1]; } /*void up(int x,int l,int r,int pos,int val){ push(x,l,r); if(l==r){ t[x]=val; return; } int m=(l+r)/2; if(pos<=m) up(x+x,l,m,pos,val); else up(x+x+1,m+1,r,pos,val); t[x]=t[x+x]+t[x+x+1]; }*/ int get(int x,int l,int r,int ll,int rr){ if(l>rr || r<ll) return 0; if(ll<=l && r<=rr) return t[x]; int m=(l+r)/2; return get(x+x,l,m,ll,rr)+get(x+x+1,m+1,r,ll,rr); } signed main() { ios_base::sync_with_stdio(0); cin.tie(); int n,k; cin>> n>>k; for(int i=1;i<=n;i++){ cin>> a[i]; } build(1,1,n); int q; cin>> q; for(int i=0;i<q;i++){ int t; cin>> t; if(t==2){ int l,r,m; cin>> l>>r>>m; int sum=0; while(m--){ sum+=get(1,1,n,l,r); l++; r--; } cout<< sum<<endl; } else { int val; cin>> val; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...