Pagini recente » Cod sursa (job #2706408) | Cod sursa (job #3211781) | Cod sursa (job #170338) | Cod sursa (job #1902796) | Cod sursa (job #1980677)
#include <bits/stdc++.h>
#define N 15005
#define z(x) (x)&(-x)
using namespace std;
int n, m, a[N], bit[N];
void update(int k, int x)
{
for (int i = k; i <= n; i += z(i))
bit[i] += x;
}
int query(int k)
{
int r = 0;
for (int i = k; i > 0; i -= z(i))
r += bit[i];
return r;
}
int main()
{
int i;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%i%i", &n, &m);
for (i = 1; i <= n; i++) {
scanf("%i", &a[i]);
update(i, a[i]);
}
int x, y, p;
while (m--) {
scanf("%i%i%i", &p, &x, &y);
if (p == 1) printf("%i\n", query(y) - query(x - 1));
else update(x, -y);
}
return 0;
}