Pagini recente » Cod sursa (job #2588558) | Cod sursa (job #948472) | Cod sursa (job #609857) | Cod sursa (job #908371) | Cod sursa (job #1734916)
#include <stdio.h>
int n,c[15001];
void mod(int a,int b){
while (a<=n){
c[a]+=b;
a+=(a&(a-1))^a;
}
}
int sum(int a,int b){
int s=0;
while (b>0){
s+=c[b];
b-=(b&(b-1))^b;
}
while (a>0){
s-=c[a];
a-=(a&(a-1))^a;
}
return s;
}
int main(){
FILE *fin, *fout;
int i,a,b,d,m;
fin=fopen("datorii.in","r");
fout=fopen("datorii.out","w");
fscanf(fin,"%d%d",&n, &m);
for (i=1;i<=n;i++){
fscanf(fin,"%d",&a);
mod(i,a);
}
for (i=1;i<=m;i++){
fscanf(fin,"%d %d %d",&d,&a,&b);
if (d==0)
mod(a,-b);
else
fprintf(fout,"%d\n",sum(a-1,b));
}
fclose(fin);
fclose(fout);
return 0;
}