fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define fastIO ios_base::sync_with_stdio(0); cin.tie(0);
  4. #define ll long long
  5. #define pb push_back
  6. #define all(x) x.begin(), x.end();
  7.  
  8. const ll LLINF = 1e18;
  9. const int INF = 1e9;
  10. const int N = 1e6+6;
  11.  
  12. int n, q;
  13. ll fen[N];
  14.  
  15.  
  16. void fenUpdate(int pos, int val){
  17. for (int i=pos; i<=n; i += i&-i){
  18. fen[i] += val;
  19. }
  20. }
  21.  
  22. ll fenGet(int pos){
  23. ll ans = 0;
  24. for (int i=pos; i>0; i -= i&-i){
  25. ans += fen[i];
  26. }
  27. return ans;
  28. }
  29.  
  30. void fenUpdateRange(int l, int r, int val){
  31. fenUpdate(l, val);
  32. fenUpdate(r+1, -val);
  33. }
  34.  
  35. int main(){
  36. fastIO;
  37.  
  38. cin >> n;
  39. for (int i=1; i<=n; i++){
  40. int x;
  41. cin >> x;
  42. fenUpdateRange(i, i, x);
  43. }
  44. cin >> q;
  45. while (q--){
  46. int type;
  47. cin >> type;
  48. if (type==1){
  49. int l, r, val;
  50. cin >> l >> r >> val;
  51. fenUpdateRange(l, r, val);
  52. }
  53. else{
  54. int pos;
  55. cin >> pos;
  56. cout << fenGet(pos) << '\n';
  57. }
  58. }
  59. return 0;
  60. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Standard output is empty