Pagini recente » Cod sursa (job #1554559) | Cod sursa (job #1733386) | Cod sursa (job #191010) | Cod sursa (job #3127425) | Cod sursa (job #129759)
Cod sursa(job #129759)
#include <cstdio>
using namespace std;
int tree[15001];
int n, m;
void update(int, int);
int getVal(int);
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int i, j;
scanf("%d %d", &n, &m);
int x;
for (i = 1; i <= n; ++i) scanf("%d", &x), update(i, x);
while (m--)
{
int cod, A, B;
scanf("%d %d %d", &cod, &A, &B);
if (!cod) update(A, -B);
else printf("%d\n", getVal(B) - getVal(A-1));
};
return 0;
};
void update(int idx, int v)
{
while (idx <= n)
{
tree[idx]+= v;
idx += (idx & -idx);
};
};
int getVal(int idx)
{
int ret = 0;
while (idx > 0)
{
ret+= tree[idx];
idx -= (idx & -idx);
}
return ret;
};