Pagini recente » Clasament ada21 | Cod sursa (job #990806) | Profil MihaiGeorge_ | Cod sursa (job #352743) | Cod sursa (job #1778633)
#include <stdio.h>
int aib[15001],n;
void update(int p, int val){
while(p<=n){
aib[p]+=val;
p+=p&(-p);
}
}
int query(int p){
int s=0;
while(p!=0){
s+=aib[p];
p-=p&(-p);
}
return s;
}
int main(){
FILE *fin=fopen("datorii.in","r");
FILE *fout=fopen("datorii.out","w");
int m,i,e,t,a,b;
fscanf(fin,"%d%d",&n,&m);
for(i=1; i<=n; i++){
fscanf(fin,"%d",&e);
update(i,e);
}
for(i=1; i<=m; i++){
fscanf(fin,"%d%d%d",&t,&a,&b);
if(t==0)
update(a,-b);
else
fprintf(fout,"%d\n",query(b)-query(a-1));
}
fclose(fin);
fclose(fout);
return 0;
}