Pagini recente » Cod sursa (job #3267550) | Cod sursa (job #2864727) | Cod sursa (job #5868) | Cod sursa (job #2064271) | Cod sursa (job #2300858)
#include <cstdio>
using namespace std;
int n, aib[15005];
void update(int poz, int val)
{
for(; poz <= n; poz += poz & -poz) aib[poz] += val;
}
int query(int a, int b)
{
int s = 0;
for(; b; b -= b & -b) s += aib[b];
for(a = a - 1; a; a -= a & -a) s -= aib[a];
return s;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int m, a, b, t;
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++)
scanf("%d", &a), update(i, a);
while(m--)
{
scanf("%d%d%d", &t, &a, &b);
if(t) printf("%d\n", query(a, b));
else update(a, -b);
}
return 0;
}