Pagini recente » Cod sursa (job #1352719) | Cod sursa (job #1465172) | Cod sursa (job #2647667) | Cod sursa (job #387896) | Cod sursa (job #1208884)
#include <cstdio>
#define zeros(x) ( x&(-x) )
using namespace std;
int aib[15002];
int n,m;
void Update(int poz,int val)
{
int i;
while(poz<=n)
{
aib[poz]+=val;
poz+=poz&(-poz);
}
}
int Query(int poz)
{
int sum=0;
while(poz>0)
{
sum+=aib[poz];
poz-=poz&(-poz);
}
return sum;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&n,&m);
int i,x,op,p1,p2,s1,s2,j;
for(i=1; i<=n; i++)
{
scanf("%d",&x);
Update(i,x);
}
for(i=1; i<=m; i++)
{
scanf("%d %d %d",&op,&p1,&p2);
if(op==0)
{
p2*=-1;
Update(p1,p2);
}
else
{
s1=Query(p2);
s2=Query(p1-1);
printf("%d \n",s1-s2);
}
}
// for(i=1; i<=n; i++)
// printf("%d ",aib[i]);
return 0;
}