Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3.  
  4. /*#pragma GCC optimize("0fast, no-stack-protector")
  5. #pragma GCC optimize("unroll-loops")
  6. #pragma GCC optimize("fast-math")
  7. #pragma GCC optimize("section-anchors")
  8. #pragma GCC optimize("profile-values, profile-reorder-functions, tracer")
  9. #pragma GCC optimize("vpt")
  10. #pragma GCC optimize("rename-registers")
  11. #pragma GCC optimize("move-loops-invariant")
  12. #pragma GCC optimize("unswitch-loops")
  13. #pragma GCC optimize("function-sections")
  14. #pragma GCC optimize("data-sections")
  15. #pragma GCC optimize("branch-target-load-optimize")
  16. #pragma GCC optimize("btr-bb-exclusive")*/
  17.  
  18. #define all(v) v.begin(), v.end()
  19. #define sz(v) (int)v.size()
  20.  
  21. using namespace std;
  22. using namespace __gnu_pbds;
  23. using ll = long long;
  24. using ld = long double;
  25.  
  26. typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;
  27.  
  28.  
  29. const int L = 1e5 + 1;
  30. const ll MOD = 1e9 + 7;
  31. const int INF = (int)MOD;
  32.  
  33. int n, m;
  34. vector <int> a, t;
  35.  
  36. int sum(int r) {
  37. int ans = 0;
  38. for (; r >= 0; r = (r & (r + 1)) - 1) ans += t[r];
  39. return ans;
  40. }
  41.  
  42. void upd(int i, int x) {
  43. for (; i < n; i = (i | (i + 1))) t[i] += x;
  44. }
  45.  
  46. int sum(int l, int r) {
  47. return sum(r) - sum(l - 1);
  48. }
  49.  
  50. void init(vector <int>& x) {
  51. for (int i = 0; i < n; ++i) upd(i, x[i]);
  52. }
  53.  
  54. void solve() {
  55. cin >> n >> m;
  56. a.resize(n); t.resize(n);
  57. for (int& i : a) cin >> i;
  58. init(a);
  59. while (m--) {
  60. int type, l, r;
  61. cin >> type >> l >> r;
  62. if (type == 1) {
  63. upd(l - 1, r);
  64. }
  65. else {
  66. cout << sum(l - 1, r - 1) << '\n';
  67. }
  68. }
  69. }
  70.  
  71. int main() {
  72. ios_base::sync_with_stdio(0);
  73. cin.tie(0); cout.tie(0);
  74. solve();
  75. return 0;
  76. }
  77. /// ACTUAL CODE STARTS HERE:
  78. /*
  79. ▄▀▀▀▄
  80. ▄███▀░◐░░░▌
  81. ▌░░░░░▐
  82. ▐░░░░░▐
  83. ▌░░░░░▐▄▄
  84. ▌░░░░▄▀▒▒▀▀▀▀▄
  85. ▐░░░░▐▒▒▒▒▒▒▒▒▀▀▄
  86. ▐░░░░▐▄▒▒▒▒▒▒▒▒▒▒▀▄
  87. ▀▄░░░░▀▄▒▒▒▒▒▒▒▒▒▒▀▄
  88. ▀▄▄▄▄▄█▄▄▄▄▄▄▄▄▄▄▄▀▄
  89. ▌▌░▌▌
  90. ▌▌░▌▌
  91. ▄▄▌▌▄▌▌ */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement