Pagini recente » Cod sursa (job #2313366) | Cod sursa (job #421747) | Cod sursa (job #1435216) | Cod sursa (job #2220285) | Cod sursa (job #180941)
Cod sursa(job #180941)
#include <cstdio>
#define LSB(x) (x & ~(x-1))
int C[1<<14];
int N, M, val;
void update (int i){
for (int x = i; x <= N; x += LSB(x))
C[x] += val;
}
int query (int i){
int sol = 0;
for (int x = i; x; x -= LSB(x))
sol += C[x];
return sol;
}
int main (){
freopen ("datorii.in", "rt", stdin);
freopen ("datorii.out", "wt", stdout);
scanf ("%d %d", &N, &M);
for (int i = 1; i <= N; ++ i)
scanf ("%d ", &val), update(i);
int t, a, b;
for (; M; -- M){
scanf ("%d %d %d", &t, &a, &b); val = -b;
if (!t) update(a);
else printf ("%d\n", query(b) - query(a - 1));
}
return 0;
}