Pagini recente » Cod sursa (job #1780565) | Cod sursa (job #1669986) | Cod sursa (job #2417328) | Cod sursa (job #2120980) | Cod sursa (job #1201385)
#include<stdio.h>
int a[15100],t[15100],op,x,y,M,N;
int right(int x) {
return ((x^(x-1))&x);
}
void add(int x, int y) {
int curr=x;
while(curr<=N) {
t[curr]+=y;
curr+=right(curr);
}
}
int sum(int x) {
int curr=x, ret=0;
while(curr) {
ret+=t[curr];
curr-=right(curr);
}
return ret;
}
int main() {
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&N,&M);
for(int i=1;i<=N;++i) {
scanf("%d",&x);
add(i,x);
}
for(int i=1;i<=N;++i) {
scanf("%d%d%d",&op,&x,&y);
if(op==0) {
add(x,-y);
} else {
printf("%d\n",sum(y)-sum(x-1));
}
}
return 0;
}