Pagini recente » Cod sursa (job #1258140) | Cod sursa (job #3208087) | Cod sursa (job #929627) | Cod sursa (job #2015559) | Cod sursa (job #1521295)
# include <bits/stdc++.h>
# define ub(x) (x&(-x))
using namespace std;
const int Nmax = 15000 + 5;
int n, m, OP, val, i, aib[Nmax], x, y, nr;
int add (int val, int poz)
{
for (int i = poz; i <= n; i += ub(i)) aib[i] += val;
}
int scad(int poz, int val)
{
for (int i = poz; i <= n; i += ub(i)) aib[i] -= val;
}
int sum(int poz)
{
int suma = 0;
for (int i = poz; i >= 1; i -= ub(i)) suma += aib[i];
return suma;
}
int main ()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d\n", &n, &m);
for (i = 1; i <= n; ++i)
{
scanf("%d\n", &val);
add(val, i);
}
for (i = 1; i <= m; ++i)
{
scanf("%d", &OP);
if (OP == 0)
{
scanf("%d %d", &x, &y);
scad(x, y);
}
if (OP == 1)
{
scanf("%d %d", &x, &y);
nr = sum(y) - sum(x-1);
printf("%d\n", nr);
}
}
return 0;
}