Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. int q, a, b, n = 317;
  4. std::string str;
  5. int T[100000];
  6. int B[320];
  7.  
  8. void update(int pos, int val)
  9. {
  10.     B[pos / n] += val - T[pos];
  11.     T[pos - 1] = val;
  12. }
  13.  
  14. long long query(int lhs, int rhs)
  15. {
  16.     long long res = 0;
  17.     int leftBucket = lhs / n, rightBucket = rhs / n;
  18.    
  19.     if(rhs <= n)
  20.     {
  21.         for(int i = lhs - 1; i < rhs; i++)
  22.             res += T[i];
  23.     }
  24.    
  25.     else
  26.     {
  27.         for(int i = (rightBucket + 1) * n; i <= rhs; i++)
  28.             res += T[i];
  29.        
  30.         for(int i = leftBucket + 1; i < rightBucket; i++)
  31.             res += B[i];
  32.     }
  33.    
  34.     return res;
  35. }
  36.  
  37. int main()
  38. {
  39.     std::cin >> q;
  40.  
  41.     while(q--)
  42.     {
  43.         std::cin >> str >> a >> b;
  44.        
  45.         if(str == "Query") std::cout << query(a,b) << std::endl;
  46.         else               update(a,b);
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement