Pagini recente » Cod sursa (job #1448761) | Cod sursa (job #3282583) | Cod sursa (job #2695488) | Cod sursa (job #231395) | Cod sursa (job #542647)
Cod sursa(job #542647)
#include <cstdio>
#define file_in "datorii.in"
#define file_out "datorii.out"
#define lsb(x) (((x)&((x)-1))^(x))
int n,x,aib[101000],i,st,dr,tip,m;
void add(int poz, int val){
int i;
for (i=poz;i<=n;i+=lsb(i))
aib[i]+=val;
}
int query(int poz){
int i,ret=0;
for (i=poz;i>=1;i-=lsb(i))
ret+=aib[i];
return ret;
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n,&m);
for (i=1;i<=n;++i){
scanf("%d", &x);
add(i,x);
}
while(m--){
scanf("%d %d %d", &tip, &st, &dr);
if (tip==0)
add(st,-dr);
else
printf("%d\n", query(dr)-query(st-1));
}
return 0;
}