Pagini recente » Cod sursa (job #2410733) | Cod sursa (job #1169147) | Cod sursa (job #2455785) | Cod sursa (job #2623203) | Cod sursa (job #989384)
Cod sursa(job #989384)
#include <fstream>
#define NMAX 15001
int tree[NMAX];
void update(int i, int n, int val){
while (i <= n){
tree[i] += val;
i += -i & i;
}
}
long read(int i){
long sum = 0;
while (i > 0){
sum += tree[i];
i -= -i & i;
}
return sum;
}
int main(){
FILE *fin, *fout;
fin = fopen("datorii.in", "rt");
fout = fopen("datorii.out", "wt");
int n,m,a;
fscanf(fin,"%d %d", &n, &m);
for (int i=1; i<=n; i++){
fscanf(fin, "%d", &a);
update(i,n,a);
}
int o,t,v;
for (int i=0; i<m; i++){
fscanf(fin, "%d %d %d", &o, &t, &v);
if (o==0){
update(t,n,-v);
}
else {
fprintf(fout, "%ld\n", read(v) - read(t-1));
}
}
fclose(fin);
fclose(fout);
return 0;
}