Pagini recente » Cod sursa (job #2108308) | Cod sursa (job #780494) | Cod sursa (job #2729356) | Cod sursa (job #844270) | Cod sursa (job #2217311)
#include<stdio.h>
int n,m,i,j,k,U[16000],D[16000],s[16000],ss,si;
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
}
void solve()
{
for(i=1;i<=n;i<<=1)
{
j=i<<1;
for(k=i;k<=n;k=k+j)
{
U[k]=k+i<=n?k+i:0;
D[k]=k-i;
}
}
for(i=1;i<=n;i++)
{
scanf("%d",&si);
for(j=i;j;j=U[j])s[j]+=si;
}
for(;m;m--)
{
scanf("%d%d%d",&i,&j,&k);
if(i)
{
si=ss=0;j--;
for(;j;j=D[j])si+=s[j];
for(;k;k=D[k])ss+=s[k];
printf("%d\n",ss-si);
continue;
}
for(;j;j=U[j])
s[j]-=k;
}
}