Submission 318

Return to Problem

User: caterpillow

Language: cpp

Submitted at: Nov. 8, 2025, 10:57 p.m.

Elapsed Time: 79.95 s

Keys per Minute (KPM): 530.56

Status: AC

Test Case Results:

# Status Time (s) Error
1 AC 0.8 -
2 AC 0.801 -
3 AC 0.8 -
4 AC 0.789 -
5 AC 0.783 -
#include "iostream"
using namespace std;
using ll = long long;
const int mx = 1 << 17;
ll i, n, q, t, l, r, x, y, 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) { for (y = 0; i > 0; i &= i - 1) y += a[i - 1]; return y; }
main() {
    for (cin >> n >> q; i < n; i++) cin >> x, add(i, x, a);
    while (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';
    }
}