Pagini recente » Cod sursa (job #1022276) | Cod sursa (job #459105) | Cod sursa (job #2431901) | Cod sursa (job #650225) | Cod sursa (job #1251477)
#include <cstdio>
using namespace std;
int n, m, ind;
int op;
long aib[15002];
int a, val, p, q;
void Update(int poz, int q)
{
for (int i = poz; i <= n; i += i & -i)
aib[i] += q;
}
long Sum(int poz)
{
long sum = 0;
for (int i = poz; i > 0; i -= i & -i)
sum += aib[i];
return sum;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d", &n, &m);
for (int j = 1; j <= n; j++)
{
scanf("%d", &a);
Update(j, a);
}
for (int j = 1; j <= m; j++)
{
scanf("%d", &op);
if (op == 0)
{
scanf("%d%d", &ind, &val);
Update(ind, -val);
}
else
{
scanf("%d%d", &p, &q);
printf("%ld\n", Sum(q) - Sum(p - 1));
}
}
return 0;
}