Pagini recente » Cod sursa (job #1886274) | Cod sursa (job #3132580) | Cod sursa (job #276686) | Cod sursa (job #908203) | Cod sursa (job #1652254)
#include <bits/stdc++.h>
#define maxN 15005
#define UB(x) ((x)&(-x))
using namespace std;
int v[maxN], aib[maxN], n, i, j, m;
int op, a, b;
void add(int pp, int val)
{
int i;
for(i = pp; i <= n; i += UB(i))
aib[i] += val;
}
int query(int poz)
{
int sum=0, i;
for(i = poz; i > 0; i -= UB(i))
sum += aib[i];
return sum;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d", &n, &m);
for(i = 1; i <= n; i++)
scanf("%d", &v[i]), add(i, v[i]);
while(m--)
{
scanf("%d%d%d", &op, &a, &b);
if(!op) add(a, -b);
else printf("%d\n", query(b)-query(a-1));
}
return 0;
}