Pagini recente » Cod sursa (job #1221927) | Cod sursa (job #1977877) | Cod sursa (job #2352916) | Cod sursa (job #2191632) | Cod sursa (job #2616594)
#include <bits/stdc++.h>
#define nmax 15001
#define zeros(x) ((x^(x-1)) & x)
using namespace std;
int v[nmax], AIB[nmax];
int n, m;
void Add(int x, int quantity)
{
int i;
for(i = x; i <= n; i+=zeros(i))
AIB[i] += quantity;
}
int Compute(int x)
{
int i, ret = 0;
for(i = x; i > 0; i -= zeros(i))
ret += AIB[i];
return ret;
}
int main()
{ freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d",&n,&m);
int y;
for(int i = 1;i <= n;i++)
{
scanf("%d",&y);
Add(i,y);
}
int x1, s, x2, x3;
for(int j = 1;j <= m; j++) {
scanf("%d%d%d",&x1,&x2,&x3);
if(x1 == 0) {
Add(x2,-x3);
}
else {
s = Compute(x3) - Compute(x2-1);
printf("%d\n",s);
}
}
return 0;
}