Pagini recente » Cod sursa (job #2382190) | Cod sursa (job #2029432) | Cod sursa (job #1206386) | Cod sursa (job #631284) | Cod sursa (job #2172368)
#include <cstdio>
#define zeros(x) ((x-1) ^ x) & x
using namespace std;
int n, AIB[15005];
void Add(int x, int qt)
{
for(int i=x ; i<=n ; i+=zeros(i))
AIB[i]+= qt;
}
int Compute(int x)
{
int sum=0;
for(int i=x ; i>0 ; i-=zeros(i))
sum+=AIB[i];
return sum;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int i, m, op, x, y;
scanf("%d%d", &n, &m);
for(i=1 ; i<=n ; i++)
scanf("%d", &op), Add(i, op);
for(i=1 ; i<=m ; i++)
{
scanf("%d%d%d", &op, &x, &y);
if(!op)
Add(x, -y);
else
printf("%d\n", Compute(y)-Compute(x-1));
}
return 0;
}