Pagini recente » Cod sursa (job #1268590) | Cod sursa (job #2777670) | Cod sursa (job #934146) | Cod sursa (job #1357708) | Cod sursa (job #1260188)
#include <cstdio>
using namespace std;
int aib[15005], n;
void update(int poz, int valoare)
{
for (; poz <= n; poz += poz & (poz - 1) ^ poz)
aib[poz] += valoare;
}
int query(int poz)
{
int s = 0;
for (; poz <= n; poz -= poz & (poz - 1) ^ poz)
s += aib[poz];
return s;
}
int main()
{
int m, x, a, b, c, i;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d", &n, &m);
for (i=1; i<=n; i++)
{
scanf("%d", &x);
update (i, x);
}
for (i=1; i<=n; i++)
{
scanf ("%d%d%d", &a, &b, &c);
if (a)
printf("%d\n", query(c) - query(b-1));
else
update (b, -c);
}
}