Pagini recente » Cod sursa (job #2965030) | Cod sursa (job #1039629) | Cod sursa (job #2865825) | Cod sursa (job #544941) | Cod sursa (job #462511)
Cod sursa(job #462511)
#include<stdio.h>
int n,m;
int AIB[20006];
void update(int poz,int val)
{
for(;poz<=n;poz+=poz^(poz-1)&poz)
AIB[poz]+=val;
}
int query(int poz)
{
int s=0;
for(;poz;poz-=poz^(poz-1)&poz)
s+=AIB[poz];
return s;
}
int main ()
{
int i,val,a,b,c;
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,val);
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(!a)
update(b,-c);
else
printf("%d\n",query(c)-query(b-1));
}
return 0;
}