Pagini recente » Cod sursa (job #1463446) | Cod sursa (job #950197) | Cod sursa (job #2905197) | Cod sursa (job #2249220) | Cod sursa (job #1493205)
#include <cstdio>
#define NMAX 15010
int N, M;
int aib[NMAX];
void update (int poz, int val) {
for (int i = poz; i <= N; i += (i&(-i))) {
aib[i] += val;
}
}
int query (int poz) {
int ans = 0;
for (int i = poz; i > 0; i -= (i&(-i))) {
ans += aib[i];
}
return ans;
}
int main () {
freopen ("datorii.in", "r", stdin);
freopen ("datorii.out", "w", stdout);
scanf ("%d%d", &N, &M);
int elem;
for (int i = 1; i <= N; i++) {
scanf ("%d", &elem);
update (i, elem);
}
while (M--) {
int tip, X, Y;
scanf ("%d%d%d", &tip, &X, &Y);
if (tip == 0) {
update (X, -Y);
}
else {
printf ("%d\n", query (Y) - query (X - 1));
}
}
return 0;
}