Pagini recente » Statistici Theodore Begum (4giannac1122eL3) | Cod sursa (job #384968) | Cod sursa (job #1343983) | Cod sursa (job #1531962) | Cod sursa (job #209020)
Cod sursa(job #209020)
#include<stdio.h>
int x,n,m,i,v[20000],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);
}
}
int add(int poz,int val){
int z=0;
while(poz<=n){
v[poz]+=val;
while( ! ((poz>>z)&1) )z++;
poz+=(1<<z);
}
}
int intr(int poz){
int S=0,z=0;
while(poz>0){
S+=v[poz];
while( ! ((poz>>z)&1) )z++;
poz-=(1<<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);
add(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;
}