Pagini recente » Cod sursa (job #1431825) | Cod sursa (job #836575) | Cod sursa (job #1648726) | Cod sursa (job #794508) | Cod sursa (job #209021)
Cod sursa(job #209021)
#include<stdio.h>
int x,n,m,i,v[15010],t,a,b;
int mod(int poz,int val){
int z=0;
while(poz<=n){
v[poz]-=val;
while( ! ((poz>>z)&1) )z++;
poz+=(1<<z);
z++;
}
}
int intr(int poz){
int S=0,z=0;
while(poz>0){
S+=v[poz];
while( ! ((poz>>z)&1) )z++;
poz-=(1<<z);
z++;
}
return S;
}
int main(){
FILE *f=fopen("datorii.in","r");
FILE *g=fopen("datorii.out","w");
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;i++){
fscanf(f,"%d",&x);
mod(i,-x);
}
for(i=1;i<=m;i++){
fscanf(f,"%d %d %d",&t,&a,&b);
if(t==0){
mod(a,b);
}
else
fprintf(g,"%d\n", (intr(b)-intr(a-1)) );
}
fclose(f);
fclose(g);
return 0;
}