Pagini recente » Cod sursa (job #560411) | Cod sursa (job #551267) | Cod sursa (job #664727) | Cod sursa (job #230862) | Cod sursa (job #444029)
Cod sursa(job #444029)
#include<stdio.h>
#define Nmax 15010
int Aib[Nmax],poz,val,x,i,n,m,op;
void update(int poz)
{
int k=0;
while(poz<=n)
{
Aib[poz]+=val;
while(!(poz&(1<<k))) k++;
poz+=(1<<k);
k++;
}
}
int query(int poz)
{
int s=0,k=0;
while(poz>0)
{
s+=Aib[poz];
while(!(poz&(1<<k))) k++;
poz-=(1<<k);
k++;
}
return s;
}
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",&val);
update(i);
}
for(i=1;i<=m;i++)
{
scanf("%d %d %d",&op,&poz,&val);
if(!op)
{
val*=(-1);
update(poz);
}
else
printf("%d\n",query(val)-query(poz-1));
}
return 0;
}