Pagini recente » Cod sursa (job #2888042) | Cod sursa (job #819498) | Cod sursa (job #869982) | Cod sursa (job #1807669) | Cod sursa (job #944012)
Cod sursa(job #944012)
#include<cstdio>
#define inf 1000000001
int c,s,n;
int t[15001];
void actualizare(int poz, int val)
{
c=0;
while(poz<=n)
{
t[poz]+=val;
while(!(poz&(1<<c)))
++c;
poz+=(1<<c);
c+=1;
}
}
int interogare(int poz)
{
c=0;s=0;
while(poz>0)
{
s+=t[poz];
while(!(poz&(1<<c)))
++c;
poz-=(1<<c);
c+=1;
}
return s;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int i,m,x,a,b;
bool p;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
{
scanf("%d",&x);
actualizare(i,x);
}
for(i=1;i<=m;++i)
{
scanf("%d",&p);
if(p==0)
{
scanf("%d%d",&a,&b);
actualizare(a,-b);
}
else
{
scanf("%d%d",&a,&b);
printf("%d\n",interogare(b)-interogare(a-1));
}
}
return 0;
}