fork(1) download
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. using namespace std;
  5.  
  6. #define ll long long
  7.  
  8. ll BIT[100001];
  9. ll n,q;
  10.  
  11. void update(ll val,ll i) {
  12. ll idx=i;
  13. while(idx<=n) {
  14. BIT[idx]+=val;
  15. idx += idx & -idx;
  16. }
  17.  
  18. }
  19.  
  20. ll read(ll x) {
  21. ll val=0;
  22. ll idx=x;
  23. while(idx>0) {
  24. val+=BIT[idx];
  25. idx -= idx & -idx;
  26. }
  27. return val;
  28. }
  29.  
  30. int main() {
  31. cin >> n>>q;
  32. for(ll i=1;i<=n;i++) {
  33. ll t;
  34. cin >> t;
  35. update(t,i);
  36.  
  37. }
  38.  
  39. for(ll i=0;i<q;i++) {
  40. char ch;
  41. ll a,b;
  42. cin >> ch >> a >> b;
  43. if(ch=='S') {
  44. cout << read(b+1)-read(a) << endl;
  45. }
  46. else if(ch=='G') {
  47. update(b,a+1);
  48. }
  49.  
  50. else {
  51. update(-b,a+1);
  52. }
  53.  
  54. }
  55.  
  56. return 0;
  57. }
Success #stdin #stdout 0s 4128KB
stdin
5 3
1000 1002 1003 1004 1005
S 0 2
G 0 3
S 0 2
stdout
3005
3008