From 244f30692cede7be4b164ad8575eb5a6548727c6 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Mon, 18 Aug 2025 21:02:52 +0800 Subject: [PATCH] update --- src/8/18/segtreerange.cpp | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/8/18/segtreerange.cpp b/src/8/18/segtreerange.cpp index 33909a3..e6bbb15 100644 --- a/src/8/18/segtreerange.cpp +++ b/src/8/18/segtreerange.cpp @@ -4,7 +4,7 @@ using ll = int64_t; -ll n; +ll n,q; std::vector t; std::vector v; std::vector lazy; @@ -20,7 +20,6 @@ ll create(ll cur,ll l,ll r){ return t[cur]; } - ll rangeadd(ll cur, ll l, ll r, ll ql, ll qr, ll val) { if (lazy[cur] != 0) { t[cur] += lazy[cur] * (r - l + 1); @@ -61,7 +60,7 @@ ll rangequery(ll cur, ll l, ll r, ll ql, ll qr) { } int main(){ - std::cin>>n; + std::cin>>n>>q; t.resize((n+1)*4); v.resize(n+1); lazy.resize((n+1)*4); @@ -69,18 +68,17 @@ int main(){ std::cin>>v[i]; } create(1, 1, n); - ll q; - std::cin>>q; while(q--){ - ll l, r, val; - std::cin>>l>>r>>val; - rangeadd(1, 1, n, l, r, val); - std::cout << t[1] << "\n"; - } - std::cin>>q; - while(q--){ - ll l, r; - std::cin>>l>>r; - std::cout << rangequery(1, 1, n, l, r) << "\n"; + ll op; + std::cin>>op; + if(op==1){ + ll x,y,z; + std::cin>>x>>y>>z; + rangeadd(1, 1, n, x, y, z); + }else{ + ll x,y; + std::cin>>x>>y; + std::cout<