Pagini recente » Cod sursa (job #1107511) | Cod sursa (job #175397) | Cod sursa (job #1940237) | Cod sursa (job #39612) | Cod sursa (job #295207)
Cod sursa(job #295207)
#include<stdio.h>
#define N 15100
FILE *f,*g;
int n,m ;
int a[N];
void update(int poz,int val){
for(; poz<=n ; poz += (poz&(poz-1))^poz )
a[poz]+=val;
}
long suma(int poz){
long sum=0;
for(; poz ; poz -= (poz&(poz-1))^poz )
sum+=a[poz];
return sum;
}
int main(){
f = fopen("datorii.in","r");
g = fopen("datorii.out","w");
fscanf(f,"%d%d",&n,&m);
int i,x,o,y;
for(i=1;i<=n;i++){
fscanf(f,"%d",&x);
update(i,x);
}
for( ; m-- ; ){
fscanf(f,"%d%d%d",&o,&x,&y);
if(!o) update(x,-y);
else fprintf(g,"%ld\n",suma(y) - suma(x-1));
}
return 0;
}