/**
III U U N N DDDD EEEEE RRRR SSSS TTTTT AAAAA N N DDDD I TTTTT N N OOO W W
I U U NN N D D E R R S T A A NN N D D I T NN N O O W W
I U U N N N D D EEEE RRRR SSSS T AAAAA N N N D D I T N N N O O W W W
I U U N NN D D E R R S T A A N NN D D I T N NN O O WW WW
III UUUUU N N DDDD EEEEE R R SSSS T A A N N DDDD I T N N OOO W W
**/
#include <bits/stdc++.h>
using namespace std;
#define ent '\n'
#define F first
#define S second
#define in insert
#define no "NO\n"
#define yes "YES\n"
#define pb push_back
#define sz(w) w.size()
#define int long long
#define all(w) w.begin(), w.end()
#define BakTR ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
//const int MOD = 998244353, N = 1e3 + 7 , inf = 1e9 + 7, INF = 2e18, LOG = 20 , mod = 1e6 + 7 ;
const int N = 1e4 + 2;
const int inf = 1e15;
const int mod = 1e9 + 7;
int T = 1 , a[10002] , t[4 * N] ;
void build( int v, int tl, int tr )
{
if( tl == tr )
{
t[v] = a[tl];
return;
}
int mid = (tl + tr) / 2;
build(v + v, tl, mid);
build(v + v + 1, mid + 1, tr);
t[v] = t[v + v] + t[v + v + 1];
}
void upd( int v, int tl, int tr, int pos, int x )
{
if( tl == tr )
{
t[v] = x;
return;
}
int mid = (tl + tr) / 2;
if( pos <= mid )
upd(v + v, tl, mid, pos, x);
else
upd(v + v + 1, mid + 1, tr, pos, x);
t[v] = t[v + v] + t[v + v + 1];
}
int get( int v, int tl, int tr, int l, int r )
{
if( tr < l || r < tl )
return 0;
if( l <= tl && tr <= r )
return t[v];
int mid = (tl + tr) / 2;
int x = get(v + v, tl, mid, l, r);
int y = get(v + v + 1, mid + 1, tr, l, r);
return x + y;
}
void accepted() {
int n , k;
cin >> n >> k ;
for(int i = 1 ; i <= n ; i++) {
cin >> a[i] ;
}
int p[n + 1] ;
p[1] = a[1] ;
for(int i = 2 ; i <= n ; i++) {
p[i] = p[i - 1] + a[i] ;
}
int q ;
cin >> q ;
while(q -- ) {
int t ;
cin >> t ;
if(t == 1) {
int x ;
cin >> x ;
}
else {
int l , r , m ;
cin >> l >> r >> m ;
int sum = 0 ;
for (int ll = l ; ll <= r - m + 1 ; ll++) {
int rr = ll + m - 1;
sum += p[rr] - p[ll - 1] ;
}
cout << sum << ent ;
}
}
}
signed main() {
BakTR
//PLS NeverGiveUp
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int T = 1;
//cin >> T;
while (T--) {
accepted();
cout << ent;
}
}
/**
baktr
65868073990A98C52AFDB7A48F4E8D26
**/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |