Advertisement
Falak_Ahmed_Shakib

BIT

Nov 28th, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef int ll;
  4. typedef unsigned long long ull;
  5. typedef pair<ll,ll>pll;
  6. typedef pair<ll,pair<ll,ll>>plll;
  7. #define F first
  8. #define S second
  9. #define sf scanf
  10. #define pf printf
  11.  
  12. const int Max = 1e5+10;
  13.  
  14. ll tree[100000];
  15.  
  16. ll query(ll idx)
  17. {
  18. ll sum=0;
  19. while(idx>0)
  20. {
  21. sum+=tree[idx];
  22. idx -= idx & (-idx);
  23. }
  24. return sum;
  25. }
  26. void update(ll idx, ll x, ll n)
  27. {
  28. while(idx<=n)
  29. {
  30. tree[idx]+=x;
  31. idx += idx & (-idx);
  32. }
  33.  
  34. }
  35.  
  36. int main()
  37. {
  38.  
  39. ll t,cs=1;
  40.  
  41. sf("%d",&t);
  42.  
  43. while(t--)
  44. {
  45.  
  46. pf("Case ");
  47.  
  48. pf("%d",cs++);
  49.  
  50. pf(":\n");
  51.  
  52.  
  53. ll n,q;
  54.  
  55. sf("%d %d",&n,&q);
  56.  
  57. ll ara[n+10];
  58.  
  59. ara[0]=0;
  60.  
  61. for(ll i=1; i<=n; i++)
  62. {
  63. sf("%d",&ara[i]);
  64.  
  65. update(i,ara[i],n);
  66. }
  67.  
  68.  
  69. while(q--)
  70.  
  71. {
  72.  
  73. ll a;
  74.  
  75. sf("%d",&a);
  76.  
  77. if(a==1)
  78. {
  79. ll p;
  80.  
  81. sf("%d",&p);
  82.  
  83. pf("%d\n",ara[p+1]);
  84.  
  85.  
  86. update(p+1,-ara[p+1],n);
  87.  
  88. ara[p+1]=0;
  89.  
  90. }
  91.  
  92. else if(a==2)
  93. {
  94. ll p,val;
  95.  
  96. sf("%d %d",&p,&val);
  97.  
  98. ara[p+1]=ara[p+1]+val;
  99.  
  100. update(p+1,val,n);
  101. }
  102. else
  103. {
  104.  
  105. ll l,r;
  106.  
  107. sf("%d %d",&l,&r);
  108.  
  109. l++;
  110. r++;
  111.  
  112. pf("%d\n",query(r)-query(l-1));
  113.  
  114. }
  115. }
  116.  
  117.  
  118. for(ll i=1; i<=n; i++)
  119. {
  120. tree[i]=0;
  121. }
  122.  
  123.  
  124.  
  125. }
  126.  
  127.  
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement