Pagini recente » Cod sursa (job #11785) | Cod sursa (job #3166245) | Cod sursa (job #1459375) | Cod sursa (job #43801) | Cod sursa (job #2030230)
#include <fstream>
using namespace std;
const int NMAX = 15000;
int n, m, aib[NMAX + 2], a, b, q;
int lastBit(int x) { return x & (-x);}
void update(int poz, int val, int n) {
for(; poz <= n; poz += lastBit(poz))
aib[poz] += val;
}
int query(int poz) {
int ans = 0;
for(; poz; poz -= lastBit(poz))
ans += aib[poz];
return ans;
}
int main() {
ifstream cin("datorii.in");
ofstream cout("datorii.out");
cin >> n >> m;
for(int i = 1; i <= n; i++) {
cin >> a;
update(i, a, n);
}
for(int i = 1; i <= m; ++i) {
cin >> q >> a >> b;
if(!q) {
update(a, -b, n);
} else {
cout << query(b) - query(a - 1) << "\n";
}
}
}