Pagini recente » Cod sursa (job #78712) | Cod sursa (job #1545703) | Cod sursa (job #2482041) | Cod sursa (job #335913) | Cod sursa (job #430313)
Cod sursa(job #430313)
#include <cstdio>
using namespace std;
#define zeros(x) (x ^ (x - 1)) & x
#define NMAX 15050
long a, b, n, m, code, aib[NMAX];
void add(long index, long quantity)
{
for (long i = index; i <= n; i += zeros(i))
aib[i] += quantity;
}
long compute(long index)
{
long tmp = 0;
for (long i = index; i; i -= zeros(i))
tmp += aib[i];
return tmp;
}
int main()
{
freopen ("datorii.in", "rt", stdin);
freopen ("datorii.out", "wt", stdout);
scanf("%ld %ld", &n, &m);
for (long i = 1; i <= n; ++i)
scanf("%ld", &a), add(i, a);
for (long i = 1; i <= m; ++i)
{
scanf("%ld %ld %ld", &code, &a, &b);
if (!code)
add(a, -b);
else
printf("%ld\n", compute(b) - compute(a - 1));
}
return 0;
}