Pagini recente » Cod sursa (job #268374) | Cod sursa (job #1281335) | Cod sursa (job #409413) | Cod sursa (job #3191329) | Cod sursa (job #1436818)
#include<cstdio>
int v[150001],v2[150001];
int main ()
{freopen ("datorii.in","r",stdin);
freopen ("datorii.out","w",stdout);
int n,m,i,a,b,x,k,s1,s2;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{scanf("%d",&k);
v[i]=v[i-1]+k;
}
for(i=1;i<=m;i++)
{x=(i^(i&(i-1)));
v2[i]=v[i]-v[i-x];
}
for(i=1;i<=n;i++)
{scanf("%d%d%d",&k,&a,&b);
if(k==0)
{while(a<=n)
{v2[a]-=b;
x=(a^(a&(a-1)));
a+=x;
}
}
else
{s1=s2=0;
a--;
while(a>=1)
{s1+=v2[a];
x=(a^(a&(a-1)));
a-=x;
}
while(b>=1)
{s2+=v2[b];
x=(b^(b&(b-1)));
b-=x;
}
printf("%d\n",s2-s1);
}
}
return 0;
}