fork download
  1. #include<bits/stdc++.h>
  2. #define int long long int
  3. using namespace std;
  4. void add(int ft[],int idx,int delta,int n)
  5. {
  6. for(;idx<n;idx = idx|(idx+1))
  7. {
  8. ft[idx]+=delta;
  9. }
  10. }
  11. int sum(int r,int ft[])
  12. {
  13. int res =0;
  14. for(;r>=0; r= (r&(r+1))-1)
  15. {
  16. res+=ft[r];
  17. }
  18. return res;
  19. }
  20. int32_t main()
  21. {
  22. int n; cin>>n;
  23. int a[n];
  24. for(int i=0;i<n;i++)cin>>a[i];
  25. int ft[n]={0};
  26. for(int i=0;i<n;i++)
  27. {
  28. add(ft,i,a[i],n);
  29. }
  30. int t; cin>>t;
  31. while(t--)
  32. {
  33. char c;
  34. int u,v;
  35. cin>>c>>u>>v;
  36. if(c=='q'){
  37. cout<<sum(v-1,ft)-sum(u-2,ft)<<endl;
  38. }
  39. else add(ft,u-1,v,n);
  40. }
  41. }
  42.  
Success #stdin #stdout 0s 4576KB
stdin
10
3 2 4 0 42 33 -1 -2 4 4
6
q 3 5
q 1 10
u 5 -2
q 3 5
u 6 7
q 4 7
stdout
46
89
44
79