Pagini recente » Cod sursa (job #2744608) | Cod sursa (job #1404651) | Cod sursa (job #413694) | Cod sursa (job #2916378) | Cod sursa (job #2316323)
#include <stdio.h>
int aib[15001], n, m;
int zeroes (int x)
{
return x & -x;
}
void add(int x, int q)
{
for(; x <= n; x += zeroes(x) )
aib[x]+=q;
}
int compute(int x)
{
int ret = 0;
for(; x > 0; x -= zeroes(x) )
ret += aib[x];
return ret;
}
int main()
{
int i, op, x, q, l, h;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%i%i", &n, &m);
for (i = 1; i <= n; ++i)
{
scanf("%i", &x);
add(i, x);
}
for (i = 0; i < m; ++i)
{
scanf("%i", &op);
switch(op)
{
case 0:
scanf("%i%i", &x, &q);
add(x, -q);
break;
case 1:
scanf("%i%i", &l, &h);
printf("%i\n", compute(h) - compute(l-1));
break;
}
}
}