Pagini recente » Cod sursa (job #2441506) | Cod sursa (job #2278462) | Cod sursa (job #1707760) | Cod sursa (job #1399655) | Cod sursa (job #3267567)
#include <iostream>
using namespace std;
#define endl '\n'
int n, dat[15001], x, y, m, op;
void update(int ind, int x){
for (int i=ind; i<=n; i+=(i&-i)){
dat[i]-=x;
}
}
int query(int ind){
int sum=0;
for (int i=ind; i>=1; i-=(i&-i)){
sum+=dat[i];
}
return sum;
}
int main(){
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
cin>>n>>m;
for (int i=1; i<=n; ++i){
cin>>x;
update(i, -x);
}
while (m--){
cin>>op>>x>>y;
if (!op){
// update
update(x, y);
} else {
// query
cout<<query(y)-query(x-1)<<endl;
}
}
}