Pagini recente » Cod sursa (job #1963898) | Cod sursa (job #3126340) | Cod sursa (job #1232045) | Cod sursa (job #2057996) | Cod sursa (job #1987952)
#include<cstdio>
#define zeros(x) (x & (-x))
const int nmax=15005;
int aib[nmax],n,m;
inline void add(int x,int val)
{
int i;
for(i=x;i<=n;i+=zeros(i))
aib[i]+=val;
}
inline void scad(int x,int val)
{
int i;
for(i=x;i<=n;i+=zeros(i))
aib[i]-=val;
}
inline int sum(int x)
{
int i,r=0;
for(i=x;i;i-=zeros(i))
r+=aib[i];
return r;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int i,x,y,op;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
add(i,x);
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&op,&x,&y);
if(op==0)
scad(x,y);
else
printf("%d\n",sum(y)-sum(x-1));
}
}