Pagini recente » Cod sursa (job #981163) | Cod sursa (job #1238771) | Cod sursa (job #2270996) | Cod sursa (job #2500598) | Cod sursa (job #1183205)
#include <stdio.h>
#define MAXN 15000
int aib[MAXN+1], n;
inline int ub(int a){
return a&(-a);
}
inline int sum(int a){
int i, s;
s=0;
for(i=a; i!=0; i-=ub(i)){
s+=aib[i];
}
return s;
}
inline void add(int poz, int val){
int i;
for(i=poz; i<=n; i+=ub(i)){
aib[i]+=val;
}
}
int main(){
int m, a, i, b, c;
FILE *fin, *fout;
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);
add(i, a);
}
for(i=0; i<m; i++){
fscanf(fin, "%d%d%d", &a, &b, &c);
if(a==0){
add(b, -c);
}else{
fprintf(fout, "%d\n", sum(c)-sum(b-1));
}
}
fclose(fin);
fclose(fout);
return 0;
}