Pagini recente » Cod sursa (job #985648) | Cod sursa (job #2886914) | Cod sursa (job #1847728) | Cod sursa (job #2104473) | Cod sursa (job #1481748)
#include <cstdio>
#include <iostream>
using namespace std;
int n, m, bit[15005];
int getSum(int index) {
int sum = 0;
while (index > 0) {
sum += bit[index];
index -= index & (-index);
}
return sum;
}
int sumFrom(int a, int b) {
return getSum(b) - getSum(a - 1);
}
void update(int index, int val) {
while (index <= n) {
bit[index] += val;
index += index & (-index);
}
}
int main() {
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
bit[i] = 0;
}
for (int i = 1; i <= n; i++) {
int aux;
cin >> aux;
update(i, aux);
}
for (int i = 1; i <= m; i++) {
int a, b, c;
cin >> a >> b >> c;
if (a == 1) {
cout << sumFrom(b, c) << "\n";
} else {
update(b, -c);
}
}
return 0;
}