Pagini recente » Cod sursa (job #2445154) | Profil Georgiana | Cod sursa (job #1586625) | Cod sursa (job #2443927) | Cod sursa (job #1138808)
#include <cstdio>
#define ub(x) (x&(-x))
using namespace std;
int x,y,i,n,m,a[15005],ii,caz;
void upd(int x,int poz)
{
int i;
for(i=poz;i<=n;i+=ub(i))
a[i]+=x;
}
int suma(int poz)
{
int i,sum=0;
for(i=poz;i>=1;i-=ub(i))
sum+=a[i];
return sum;
}
int S(int p1,int p2)
{
return suma(p2)-suma(p1-1);
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
{
scanf("%d",&x);
upd(x,i);
}
for(ii=1;ii<=m;++ii)
{
scanf("%d%d%d",&caz,&x,&y);
if(caz==0)
{
for(i=x;i<=n;i+=ub(i))
a[i]-=y;
}
else
{
printf("%d\n",S(x,y));
}
}
return 0;
}