Pagini recente » Cod sursa (job #994370) | Cod sursa (job #556811) | Cod sursa (job #469611) | Cod sursa (job #204264) | Cod sursa (job #1067787)
#include <cstdio>
using namespace std;
int n, m, j, ind;
bool op;
long a, s, aib[15002], val;
int zeros (int poz) {
return ( poz ^ ( poz - 1 ) ) & poz;
}
void add (int poz, long q) {
int i;
for (i = poz; i <= n; i += zeros(i)) {
aib[i] += q;
}
}
long sum(int poz) {
int i;
long v = 0;
for (i = poz; i > 0; i -= zeros(i)) {
v += aib[i];
}
return v;
}
int main() {
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%ld %ld", &n, &m);
for (j = 1; j <= n; j++) {
scanf("%ld", &a);
add(j, a);
}
for (j = 1; j <= m; j++) {
scanf("%d %d %ld", &op, &ind, &val);
if (op == 0) {
add(ind, -val);
}
else {
printf("%ld\n", sum(val) - sum(ind-1));
}
}
return 0;
}