Pagini recente » Cod sursa (job #336085) | Cod sursa (job #1462699) | Cod sursa (job #2142653) | Cod sursa (job #452868) | Cod sursa (job #897324)
Cod sursa(job #897324)
#include<cstdio>
#define nmax 15010
using namespace std;
int v[nmax],n,m,x,i,key,a,b,sum(int);
void insert(int,int);
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);
insert(i,x);
}
for(;m;--m)
{
scanf("%d%d%d", &key, &a, &b);
if(key)printf("%d\n", sum(b)-sum(a-1));
else insert(a,-b);
}
return 0;
}
void insert(int poz, int val)
{
int z=0;
while(poz<=n)
{
v[poz]+=val;
while(!(poz&(1<<z)))z++;
poz+=(1<<z);
z++;
}
}
int sum(int poz)
{
int z=0,S=0;
while(poz>0)
{
S+=v[poz];
while(!(poz&(1<<z)))z++;
poz-=(1<<z);
z++;
}
return S;
}