Pagini recente » Cod sursa (job #2779755) | Cod sursa (job #265900) | Cod sursa (job #2216190) | Cod sursa (job #257254) | Cod sursa (job #920711)
Cod sursa(job #920711)
#include <cstdio>
#define NMAX 15001
int Arb[NMAX],Sum,n,m;
inline int Query(int ind){
int S=0,C=0;
while(ind>0){
S+=Arb[ind];
while(!(ind &(1<<C)))
++C;
ind-=(1<<C);
++C;
}
return S;
}
inline void Update(int X,int ind){
int C=0;
while(ind<=n){
Arb[ind]+=X;
while(!(ind & (1<<C)))
++C;
ind+=(1<<C);
++C;
}
}
inline void solve(){
int cod,X,Y;
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(register int i=1;i<=n;++i){
scanf("%d",&X);
Update(X,i);
}
while(m){
scanf("%d",&cod);
if(!cod){
scanf("%d%d",&X,&Y);
Update(-Y,X);
}
else{
scanf("%d%d",&X,&Y);
printf("%d\n",Query(Y) - Query(X-1));
}
--m;
}
}
int main(){
solve();
return 0;
}