Pagini recente » Cod sursa (job #76944) | Cod sursa (job #157196) | Cod sursa (job #904595) | Cod sursa (job #1792394) | Cod sursa (job #1497103)
#include<cstdio>
int v[15001];
int lsb(int k)
{int i,x,q;
q=k&(-k);
x=1;
for(i=1;i<q;i++)
x*=2;
return x;
}
int main ()
{freopen ("datorii.in","r",stdin);
freopen ("datorii.out","w",stdout);
int n,m,i,j,k,x,p,s;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{scanf("%d",&x);
j=i;
while(j<=n)
{v[j]+=x;
j+=lsb(j);
}
}
for(i=1;i<=m;i++)
{scanf("%d%d%d",&p,&k,&x);
if(p==0)
while(k<=n)
{v[k]-=x;
k+=lsb(k);
}
else
{s=0;
while(x>0)
{s+=v[x];
x-=lsb(x);
}
k--;
while(k>0)
{s-=v[k];
k-=lsb(k);
}
printf("%d\n",s);
}
}
return 0;
}