Pagini recente » Clasament Runda 1 | Cod sursa (job #287506) | Girl_style | Cod sursa (job #2754556) | Cod sursa (job #1684865)
#include <fstream>
using namespace std;
int last2(int);
void upd(int,int);
int query(int);
int n,m,aib[15005];
int main(){
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++){
int x;
scanf("%d",&x);
upd(i,x);
}
for (int i=1;i<=m;i++){
int op,a,b;
scanf("%d%d%d",&op,&a,&b);
if (!op){
upd(a,-b);
}
else {
int s1=query(a-1);
int s2=query(b);
printf("%d\n",s2-s1);
}
}
}
void upd(int pos,int val){
for (int i=pos;i<=n;i+=last2(i)){
aib[i]+=val;
}
}
int query(int x){
int ans=0;
for (int i=x;i>0;i-=last2(i)){
ans+=aib[i];
}
return ans;
}
int last2(int x){
return x&(-x);
}