Submission
Status:
P-PPPPPPPPPPPPPPPPPP
Score: 95
User: Khiem
Problemset: ผลบวก (ยาก)
Language: cpp
Time: 0.082 second
Submitted On: 2024-09-29 22:19:26
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int bit[N], a[N];
void upd(int i, int v){ for(; i<N; i+=i&-i) bit[i] += v;}
int qry(int i){ int r = 0; for(; i; i-=i&-i) r += bit[i]; return r;}
signed main(){
int n; scanf("%d", &n);
for(int i = 1; i<=n; ++i) scanf("%d", a+i), upd(i, a[i]);
int q; scanf("%d", &q);
while(q--){
int t; scanf("%d", &t);
while(t--){
int i, v; scanf("%d %d", &i, &v); ++i;
upd(i, v-a[i]);
a[i] = v;
}
int x, y; scanf("%d %d", &x, &y); if(++x > ++y) swap(x, y);
printf("%d\n", qry(y) - qry(x-1));
}
}