Pagini recente » Cod sursa (job #283734) | Cod sursa (job #766179) | Cod sursa (job #675984) | Cod sursa (job #1483098) | Cod sursa (job #216715)
Cod sursa(job #216715)
#include <cstdio>
const int MAX_N = 15010;
int n, m;
int aib[MAX_N];
void update(int x, int y)
{
while (x <= n)
{
x[aib] -= y;
x += x ^ (x - 1) & x;
}
}
int query(int x)
{
int val = 0;
while (x)
{
val += x[aib];
x &= x - 1;
}
return val;
}
int main()
{
int i, x, y, q;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d", &n, &m);
for (i = 1; i <= n; ++i)
{
int aux = 0;
scanf("%d", &aux);
i[aib] += aux;
(i + (i ^ (i - 1) & i))[aib] += i[aib];
}
for (; m; --m)
{
scanf("%d %d %d", &q, &x, &y);
if (q) printf("%d\n", query(y) - query(x - 1));
else update(x, y);
}
}