Pagini recente » Cod sursa (job #2447108) | Cod sursa (job #2551125) | Cod sursa (job #413671) | Cod sursa (job #2252059) | Cod sursa (job #322411)
Cod sursa(job #322411)
#include<cstdio>
#define maxn 100005
using namespace std;
int a[maxn],i,n,x,y,z,m;
void update(int p,int v)
{
int c=0;
while(p<=n)
{
a[p]+=v;
while(!(p&(1<<c))) ++c;
p+=(1<<c);
++c;
}
}
int query(int x)
{
int c=0,s=0;
while(x>0)
{
s+=a[x];
while(!(x&(1<<c))) ++c;
x-=(1<<c);
++c;
}
return s;
}
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);
update(i,x);
}
for(i=1;i<=m;++i)
{
scanf("%d %d %d",&x,&y,&z);
if(x==0)
update(y,-z);
else
printf("%d\n",query(z)-query(y-1));
}
fclose(stdin);
fclose(stdout);
return 0;
}