Pagini recente » Cod sursa (job #1643492) | Cod sursa (job #2733170) | Cod sursa (job #514874) | Cod sursa (job #572684) | Cod sursa (job #1448421)
//0007
#include <cstdio>
int bit[15005], n, m;
void update(int poz, int val) {
while (poz <= n) {
bit[poz] += val;
poz += poz & (-poz);
}
}
int getSum(int poz) {
int ans = 0;
while (poz > 0) {
ans += bit[poz];
poz -= poz & (-poz);
}
return ans;
}
int main() {
FILE* fi = fopen("datorii.in", "rt");
FILE* fo = fopen("datorii.out", "wt");
fscanf(fi, "%d%d", &n, &m);
for (int i = 1; i <= n; i++) {
int aux;
fscanf(fi, "%d", &aux);
update(i, aux);
}
for (int i = 1; i <= m; i++) {
int a, b, c;
fscanf(fi, "%d%d%d", &a, &b, &c);
if (a == 1) {
fprintf(fo, "%d\n", getSum(c) - getSum(b - 1));
} else {
update(b, -c);
}
}
return 0;
}