Pagini recente » Cod sursa (job #275311) | Cod sursa (job #1008779) | Cod sursa (job #2726693) | Cod sursa (job #2299158) | Cod sursa (job #2386588)
#include <cstdio>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
int V[15000], AIB[15000];
int n, m, T, a, b;
void add(int x, int quantity)
{
for(int i=x; i <= n; i += zeros(i))
AIB[i] += quantity;
}
int compute(int x)
{
int i, rez = 0;
for(int i=x; i>0; i -= zeros(i))
rez += AIB[i];
return rez;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d", &n, &m);
for(int i=1; i<=n; i++)
{
scanf("%d", &V[i]);
add(i, V[i]);
}
for(int i=1; i<=m; i++)
{
scanf("%d %d %d", &T, &a, &b);
if(T == 0)
add(a, -b);
else printf("%d\n", compute(b) - compute(a-1));
}
return 0;
}