Pagini recente » clasa5 | Cod sursa (job #2400673) | Cod sursa (job #677513) | Istoria paginii runda/7_martie_simulare_oji_2024_clasele_11_12/clasament | Cod sursa (job #479350)
Cod sursa(job #479350)
#include <stdio.h>
#define maxN 15100
#define lsb(x) ((x ^ (x - 1)) & x)
int aib[maxN], N, M;
int query (int a) {
int sum = 0;
for (; a; a -= lsb(a))
sum += aib[a];
return sum;
}
void update (int poz, int val) {
for (; poz <= N; poz += lsb(poz))
aib[poz] += val;
}
int main () {
int a, b, i, t;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d", &N, &M);
for (a = 1; a <= N; ++ a) {
scanf("%d", &b);
update(a, b);
}
for (i = 1; i <= M; ++ i) {
scanf("%d%d%d", &t, &a, &b);
if (t == 0)
update(a, - b);
else
printf("%d\n", query(b) - query(a - 1));
}
}