Pagini recente » Cod sursa (job #1788807) | Cod sursa (job #929894) | Cod sursa (job #632029) | Cod sursa (job #1557358) | Cod sursa (job #2985049)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 15001;
int v[NMAX], aib[NMAX];
int n, m;
int least_significant_bit(int x) {
return x & (-x);
}
void update(int poz, int val) {
while(poz <= n) {
aib[poz] += val;
poz += least_significant_bit(poz);
}
}
int query(int poz) {
int sum = 0;
while(poz) {
sum += aib[poz];
poz -= least_significant_bit(poz);
}
return sum;
}
int main() {
ifstream cin("datorii.in");
ofstream cout("datorii.out");
cin >> n >> m;
for(int i = 1; i <= n; i++) {
int x;
cin >> x;
update(i, x);
}
for(int i = 1; i <= m; i++) {
int c, x, y;
cin >> c >> x >> y;
if(c == 0)
update(x, -y);
else
cout << query(y) - query(x - 1) << '\n';
}
return 0;
}