Submission 285
Return to ProblemUser: 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.8 | - |
| 2 | AC | 0.793 | - |
| 3 | AC | 0.799 | - |
| 4 | AC | 0.791 | - |
| 5 | AC | 0.793 | - |
#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";
}
}