Submission 284

Return to Problem

User: Anonymous

Language: cpp

Submitted at: Nov. 8, 2025, 9:52 p.m.

Elapsed Time: 93.42 s

Keys per Minute (KPM): Unknown

Status: AC

Test Case Results:

# Status Time (s) Error
1 AC 0.793 -
2 AC 0.811 -
3 AC 0.8 -
4 AC 0.789 -
5 AC 0.795 -
#include "iostream"
using ll = long long;
using namespace std;
const int mx = 1 << 17;
ll i, n, q, t, l, r, x, a[mx], b[mx];
void add(int i, ll x, ll *a) { for (; i < mx; i |= i + 1) a[i] += x; }
ll query(int i, ll *a) { ll x = 0; for (; i > 0; i &= i - 1) x += a[i - 1]; return x; }
int main() {
    cin >> n >> q;
    for (; i < n; i++) { cin >> x, add(i, x, a); }
    while (q--) {
        cin >> t >> l >> r; l--;
        if (t == 1) {
            cin >> x; 
            add(l, -x * l, a);
            add(l, x, b);
            add(r, x * r, a);
            add(r, -x, b);

        } else cout << query(r, a) + r * query(r, b) - query(l, a) - l * query(l, b) << "\n";
    }
}