Pagini recente » Cod sursa (job #683007) | Cod sursa (job #2305976) | Istoria paginii runda/simulare_oji_09_03_2023 | Cod sursa (job #1212932) | Cod sursa (job #1511866)
#include <bits/stdc++.h>
#define zeroes(x) x ^ (x - 1) & x
using namespace std;
int n;
int h[15005];
void add(int poz, int val) {
while(poz <= n) {
h[poz] += val;
poz += zeroes(poz);
}
}
int sum(int poz) {
int s = 0;
for(poz; poz > 0; poz -= zeroes(poz))
s += h[poz];
return s;
}
int main()
{
FILE *f = fopen("datorii.in", "r");
FILE *g = fopen("datorii.out", "w");
int m, x;
fscanf(f, "%d %d", &n, &m);
for(int i = 1; i <= n; i ++) {
fscanf(f, "%d", &x);
add(i, x);
}
int tip, a, b;
for(int i = 1; i <= m; i ++) {
fscanf(f, "%d %d %d", &tip, &a, &b);
if(!tip) add(a, -b);
else {
int B = sum(b);
int A = sum(a - 1);
fprintf(g, "%d\n", B - A);
}
}
return 0;
}