Pagini recente » Cod sursa (job #267516) | Cod sursa (job #3310029) | Cod sursa (job #726490) | Cod sursa (job #776464) | Cod sursa (job #3339093)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 15005;
int N, M;
int A[MAXN];
long long BIT[MAXN]; // Fenwick Tree
// adaugă valoarea v la poziția i
void update(int i, int v) {
for (; i <= N; i += i & -i)
BIT[i] += v;
}
// suma pe prefix [1..i]
long long query(int i) {
long long s = 0;
for (; i > 0; i -= i & -i)
s += BIT[i];
return s;
}
long long rangeQuery(int l, int r) {
return query(r) - query(l - 1);
}
int main() {
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> N >> M;
for (int i = 1; i <= N; i++) {
cin >> A[i];
update(i, A[i]);
}
for (int i = 0; i < M; i++) {
int cod, x, y;
cin >> cod >> x >> y;
if (cod == 0) {
update(x, -y);
} else {
cout << rangeQuery(x, y) << "\n";
}
}
return 0;
}