Pagini recente » Cod sursa (job #595141) | Cod sursa (job #234738) | Cod sursa (job #2256586) | Cod sursa (job #2989674) | Cod sursa (job #2949575)
#include <bits/stdc++.h>
using namespace std;
const int nmax = 15e3 + 7;
static int n, m;
static int a[nmax];
static int aib[nmax];
int sp(int i) {
int result = 0;
for (; i; i -= i & -i) result += aib[i];
return result;
}
int range(int i, int j) {
return sp(j) - sp(i - 1);
}
void add(int i, int v) {
for (; i <= n; i += i & -i) aib[i] += v;
}
void solve() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i];
aib[i] = a[i];
}
for (int i = 1; i <= n; i++) {
if (i + (i & -i) <= n) {
aib[i + (i & -i)] += aib[i];
}
}
while (m--) {
int c;
cin >> c;
if (c == 0) {
int i, v;
cin >> i >> v;
add(i, -v);
continue;
}
if (c == 1) {
int r, l;
cin >> r >> l;
cout << range(r, l) << '\n';
continue;
}
}
}
int main() {
#ifdef LOCAL
freopen("file.in", "r", stdin);
#else
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
#endif
ios_base::sync_with_stdio(false), cin.tie(NULL);
solve();
}