Pagini recente » Cod sursa (job #3181348) | Cod sursa (job #3266437) | Cod sursa (job #316837) | Cod sursa (job #1701038) | Cod sursa (job #459759)
Cod sursa(job #459759)
#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;
}