Untitled
Never
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 1e5; int n, q, tree[4*N + 5], lazy[4*N + 5]; void extend(int v, int tl, int tr) { int tm = (tl + tr)/2; tree[v*2] += (tm - tl + 1)*lazy[v], tree[v*2 + 1] += (tr - tm)*lazy[v]; lazy[v*2] += lazy[v], lazy[v*2 + 1] += lazy[v]; lazy[v] = 0; } void update(int v, int tl, int tr, int l, int r, int x) { if (l > r) return; else if (tl == l && tr == r) tree[v] += (r - l + 1)*x, lazy[v] += x; else { extend(v, tl, tr); int tm = (tl + tr)/2; update(v*2, tl, tm, l, min(tm, r), x); update(v*2 + 1, tm + 1, tr, max(l, tm + 1), r, x); tree[v] = tree[v*2] + tree[v*2 + 1]; } } int query(int v, int tl, int tr, int l, int r) { if (l > r) return 0; else if (tl == l && tr == r)return tree[v]; else { extend(v, tl, tr); int tm = (tl + tr)/2; return query(v*2, tl, tm, l, min(tm, r)) + query(v*2 + 1, tm + 1, tr, max(l, tm + 1), r); } } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t; cin >> t; while (t--) { cin >> n >> q; memset(tree, 0, sizeof(tree)); memset(lazy, 0, sizeof(lazy)); while (q--) { int type; cin >> type; if (type == 0) { int l, r, v; cin>> l >> r >> v; update(1, 1, n, l, r, v); } else { int l, r; cin >> l >> r; cout << query(1, 1, n, l, r) << '\n'; } } } return 0; }
Raw Text
-
Breaking news - Update 1 - 11/29/2023 20:09:26
9 min ago
-
Breaking news - Update 1 - 11/29/2023 20:09:45
9 min ago
-
Breaking news - Update 1 - 11/29/2023 20:12:46
9 min ago
-
Breaking news - Update 1 - 11/29/2023 20:12:46
9 min ago
-
Animale Male Enhancement Gummies Official Reviews: [Hoax Exposed] Benefits, Benefits, Cost, Buy?
13 min ago
-
Breaking news - Update 1 - 11/29/2023 20:05:58
13 min ago
-
Green Farms CBD Gummies Reviews & Price Update – Hoax Or Legit Formula
14 min ago
-
Breaking news - Update 1 - 11/29/2023 20:02:40
19 min ago
-
ryruyu
32 min ago
-
Breaking news - Update 1 - 11/29/2023 19:28:02
54 min ago