Pagini recente » Cod sursa (job #477773) | Cod sursa (job #2030927) | Cod sursa (job #1519609) | Cod sursa (job #1290472) | Cod sursa (job #1247725)
#include <cstdio>
using namespace std;
long n, m;
long v[15001];
long aib[15001];
void update(long x, long val) {
while(x <= n) {
aib[x] += val;
x += (x & (-x));
}
}
void createAIB() {
long i;
for(i = 1; i <= n; i++)
update(i, v[i]);
}
long basicQuery(long x) {
long rez = 0;
while(x) {
rez += aib[x];
x -= (x & (-x));
}
return rez;
}
long query(long x, long y) {
return basicQuery(y) - basicQuery(x - 1);
}
long c, a, b;
int main() {
long i, j;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%ld %ld", &n, &m);
for(i = 1; i <= n; i++) {
scanf("%ld", &v[i]);
}
createAIB();
for(i = 1; i <= m; i++) {
scanf("%ld %ld %ld", &c, &a, &b);
if(c)
printf("%ld\n", query(a, b));
else update(a, -b);
}
return 0;
}