Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Score: 100
User: mydKN
Problemset: ผลบวก (ยาก)
Language: cpp
Time: 0.057 second
Submitted On: 2025-05-02 17:55:53
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
int n, q;
int fw[maxn];
void update(int idx, int val){
for(;idx<=n;idx+=idx&-idx) fw[idx] += val;
}
int query(int idx){
int sum = 0;
for(;idx>0;idx-=idx&-idx) sum += fw[idx];
return sum;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
cin >> n;
for(int i=1;i<=n;++i){
int x;
cin >> x;
update(i, x);
}
cin >> q;
while(q--){
int t, l, r;
cin >> t;
while(t--){
int idx, val;
cin >> idx >> val;
update(idx+1, val-(query(idx+1) - query(idx)));
}
cin >> l >> r;
cout << query(r+1) - query(l) << "\n";
}
}