Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Bhupendra Yadav
- #include <bits/stdc++.h>
- #include <ext/pb_ds/assoc_container.hpp>
- //#include < ext/pb_ds/tree_policy.hpp>
- using namespace __gnu_pbds;
- using namespace std;
- typedef tree<pair < int, int >, null_type, less<pair < int, int >>, rb_tree_tag, tree_order_statistics_node_update> bhupixb;
- const int N = 1001231;
- typedef long long int ll;
- ll bit[N];
- // Remember the array is 0 indexd
- #define f(i,a,n) for(int i = a; i < n ; i++)
- ll ret_sum(int i,int n){
- ll sum(0);
- while(i > 0){ // i > 0
- sum += bit[i];
- i -= (i & (-i));
- }
- return sum;
- }
- void update(int i, int num, int n){
- while(i <= n){ // i <= n Remember
- bit[i] += num;
- i += (i&(-i));
- }
- }
- int main(){
- int n, k, i;long int num;
- cin >> n;
- //VL v(n+1), arr(n+1, 0};
- f(i,0,n)cin >> num, update(i+1, num, n);
- cin >> k;
- while(k--){
- char ch; int l, r, val;
- cin >> ch;
- if(ch == 'q'){
- cin >> l >> r;
- cout << ret_sum(r, n) - ret_sum(max(0,l-1), n) << '\n';
- }
- else{
- cin >> i >> val;
- update(i, val, n);
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment