Pagini recente » Cod sursa (job #2306893) | Cod sursa (job #677180) | Cod sursa (job #1620369) | Cod sursa (job #2483512) | Cod sursa (job #1425697)
#include <cstdio>
#define ub(x) (x&(-x))
using namespace std;
int n,m,AIB[15010],i,op,p,q,t,v,sol,x;
void add(int pos,int val)
{
int i;
for(i=pos; i<=n; i+=ub(i))
AIB[i]+=val;
return;
}
int sum(int x)
{
int i,s=0;
for(i=x; i>0; i-=ub(i))
s+=AIB[i];
return s;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d\n",&n,&m);
for(i=1; i<=n; ++i)
{
scanf("%d ",&x);
add(i,x);
}
scanf("\n");
for(i=1; i<=m; ++i)
{
scanf("%d ",&op);
if(op==0)
{
scanf("%d %d\n",&t,&v);
add(t,-v);
}
else
{
scanf("%d %d\n",&p,&q);
sol=sum(q)-sum(p-1);
printf("%d\n",sol);
}
}
return 0;
}