Pagini recente » Istoria paginii runda/may_you_do_it | Istoria paginii template/moisil-2015 | Cod sursa (job #1305549) | Cod sursa (job #2942564) | Cod sursa (job #2891092)
#include <bits/stdc++.h>
#define lsb(x) (x&(-x))
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m, v[15005], aib[15005];
void update(int pos, int val) {
while(pos <= n) {
aib[pos] += val;
pos += lsb(pos);
}
}
int query(int pos) {
int rez = 0;
while(pos >= 1) {
rez += aib[pos];
pos -= lsb(pos);
}
return rez;
}
int main() {
fin >> n >> m;
for(int i = 1; i <= n; i++) {
fin >> v[i];
update(i, v[i]);
}
for(int i = 1; i <= m; i++) {
int q; fin >> q;
if(q == 1) {
int a, b; fin >> a >> b;
fout << query(b) - query(a-1) << "\n";
}
if(q == 0) {
int t, v; fin >> t >> v;
update(t, -v);
}
}
return 0;
}