func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MaxN = int(2e5) + 256;   const int INF = int(1e9);   const int mod = (int)(1e9) + 7;   const double pi = 3.1415926535897932384626433832795;   long long n, m, ans, A[MaxN], k, a, b, q;   long long t[MaxN * 8], t1[MaxN * 8];   void upd(int v, int l, int r, int pos, int val) {     if (l == r) {       t[v] += val;       t1[v] += val;       t[v] = min(a, t[v]);       t1[v] = min(t1[v], b);       return;     }     int m = (l + r) / 2;     if (pos <= m) {       upd(v + v, l, m, pos, val);     } else       upd(v + v + 1, m + 1, r, pos, val);     t[v] = t[v + v] + t[v + v + 1];     t1[v] = t1[v + v] + t1[v + v + 1];   }   long long get(int v, int l, int r, int tl, int tr) {     if (l > tr || r < tl) return 0;     if (tl <= l & r <= tr) return t[v];     int m = (l + r) / 2;     return get(v + v, l, m, tl, tr) + get(v + v + 1, m + 1, r, tl, tr);   }   long long get1(int v, int l, int r, int tl, int tr) {     if (l > tr || r < tl) return 0;     if (tl <= l & r <= tr) return t1[v];     int m = (l + r) / 2;     return get1(v + v, l, m, tl, tr) + get1(v + v + 1, m + 1, r, tl, tr);   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cin >> n >> k >> a >> b >> q;     while (q--) {       int type;       cin >> type;       if (type == 1) {         int x, y;         cin >> x >> y;         upd(1, 1, n, x, y);       } else {         int p;         cin >> p;         int S = 0;         if (p > 1) {           S = get1(1, 1, n, 1, p - 1);         }         int S1 = 0;         if (p + k <= n) {           S1 = get(1, 1, n, p + k, n);         }         cout << S + S1 <<   n ;       }     }     return 0;   }   