Pagini recente » Cod sursa (job #1496287) | Cod sursa (job #1018694) | Cod sursa (job #2378401) | Cod sursa (job #2333488) | Cod sursa (job #2876942)
#include <bits/stdc++.h>
#define lsb(x) x & (-x)
using namespace std;
const int nmax = 15000;
int n,m;
int v[nmax+5], aib[nmax+5];
void update(int pos, int val) {
v[pos] += val;
for(int i=pos; i<=n; i+=lsb(i))
aib[i] += val;
}
int query(int pos) {
int res = 0;
for(int i=pos; i>=1; i-=lsb(i))
res += aib[i];
return res;
}
int main() {
ifstream f("datorii.in");
ofstream g("datorii.out");
f >> n >> m;
for(int i=1; i<=n; i++) {
f >> v[i];
update(i, v[i]);
}
for(int i=1; i<=m; i++) {
int op, a, b; f >> op >> a >> b;
if(op==0) update(a, -b);
else g << query(b) - query(a-1) << "\n";
}
return 0;
}