Pagini recente » Cod sursa (job #624952) | Cod sursa (job #1689235) | Cod sursa (job #2696588) | Cod sursa (job #452499) | Cod sursa (job #664833)
Cod sursa(job #664833)
#include<stdio.h>
#define z(a) ((a^(a-1))&a)
int N,M,i,t,x,y,sol,A[15002];
void ADD(int x,int y)
{
for (int i=x;i<=N;i+=z(i))
A[i]+=y;
}
int QUERY(int x)
{
sol=0;
for (int i=x;i>=1;i-=z(i))
sol+=A[i];
return sol;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&N,&M);
for (i=1;i<=N;i++){
scanf("%d",&x);
ADD(i,x);}
for (i=1;i<=M;i++){
scanf("%d%d%d",&t,&x,&y);
if (t==0) ADD(x,-y);
else printf("%d\n",QUERY(y)-QUERY(x-1));}
}