Pagini recente » Cod sursa (job #837644) | Cod sursa (job #2934252) | Cod sursa (job #1130465) | Cod sursa (job #2423327) | Cod sursa (job #2209169)
#include <vector>
#include <fstream>
using namespace std;
void add(vector<int> &bit, int i, int x) {
for (; i <= bit.size(); i += i & -i) bit[i] += x;
}
int prefix(vector<int> &bit, int i) {
int sum = 0;
for (; i; i -= i & -i) sum += bit[i];
return sum;
}
int main() {
ifstream f("datorii.in");
ofstream g("datorii.out");
int N, M; f >> N >> M;
vector<int> bit(N + 1);
for (int i = 1; i <= N; i++) {
int x; f >> x; add(bit, i, x);
}
while (M--) {
int op, a, b; f >> op >> a >> b;
if (op == 0) {
add(bit, a, -b);
} else {
g << prefix(bit, b) - prefix(bit, a-1) << '\n';
}
}
return 0;
}