Submission 318
Return to ProblemUser: 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';
}
}