Guest User

a.cpp

a guest
Nov 8th, 2025
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define pii pair<int,int>
  4. #define pb push_back
  5. #define IOS ios_base::sync_with_stdio(NULL);cin.tie(0);cout.tie(0);
  6. #define f first
  7. #define s second
  8. #define mp make_pair
  9. #define ll long long
  10.  
  11. using namespace std;
  12. const int MAXN=1e5+10;
  13. const ll INF=1e18 + 7;
  14. const int MOD=1e9+7;
  15.  
  16. int t[MAXN * 4], a[MAXN];
  17.  
  18. int n;
  19. void build(int v, int tl, int tr){
  20.     if (tl > tr){
  21.         return;
  22.     }
  23.     if (tl == tr){
  24.         t[v] = a[tl];
  25.         return;
  26.     }
  27.     int tm = (tl + tr) >> 1;
  28.     build((v << 1), tl, tm);
  29.     build((v << 1) | 1, tm + 1, tr);
  30.     t[v] = t[(v << 1)] + t[((v << 1) | 1)];
  31. }
  32.  
  33. int sum(int v, int tl, int tr, int l, int r){
  34.     if (l > r){
  35.         return 0;
  36.     }
  37.     if (tl == l && tr == r){
  38.         return t[v];
  39.     }
  40.     int tm = (tl + tr) >> 1;
  41.     return sum((v << 1), tl, tm, l, min(r, tm))
  42.         + sum(((v << 1) | 1), tm + 1, tr, max(l, tm + 1), r);
  43. }
  44.  
  45. void update(int v, int tl, int tr, int pos, int val){
  46.     if (tl > tr){
  47.         return;
  48.     }
  49.     if (tl == tr){
  50.         t[v] = val;
  51.         return;
  52.     }
  53.     int tm = (tl + tr) >> 1;
  54.     if (pos <= tm){
  55.         update((v << 1), tl, tm, pos, val);
  56.     }
  57.     else{
  58.         update(((v << 1) | 1), tm + 1, tr, pos, val);
  59.     }
  60.     t[v] = t[(v << 1)] + t[((v << 1) | 1)];
  61. }
  62.  
  63. void solve(){
  64.     cin >> n;
  65.     for (int i = 1; i <= n; i++){
  66.         cin >> a[i];
  67.     }
  68.     build(1, 1, n);
  69.     int q;
  70.     cin >> q;
  71.     for (int i = 1; i <= q; i++){
  72.         int type;
  73.         cin >> type;
  74.         if (type == 1){
  75.             int l, r;
  76.             cin >> l >> r;
  77.             cout << sum(1, 1, n, l, r) << '\n';
  78.         }
  79.         else{
  80.             int pos, val;
  81.             cin >> pos >> val;
  82.             update(1, 1, n, pos, val);
  83.         }
  84.     }
  85.  
  86.  
  87. }
  88.  
  89. int main(){
  90.     //IOS;
  91.     int ttt = 1;
  92.     //cin >> ttt;
  93.     while (ttt--){
  94.         solve();
  95.     }
  96. }
  97.  
  98.  
  99. //Vertex
  100. //Academy203!
  101.  
  102.  
Advertisement
Add Comment
Please, Sign In to add comment