Pagini recente » Cod sursa (job #2881278) | Cod sursa (job #484375) | Cod sursa (job #2748385) | Cod sursa (job #929084) | Cod sursa (job #2301148)
#include <fstream>
using namespace std;
const int maxN=1e5+1;
inline int lsb(int x){
return x&(-x);
}
int n,q;
int aib[maxN];
void updateAIB(int pos,int val){
for(int i=pos;i<=n;i+=lsb(i))
aib[i]+=val;
}
int queryAIB(int pos){
int res=0;
for(int i=pos;i>0;i-=lsb(i))
res+=aib[i];
return res;
}
int main(){
ifstream cin("datorii.in");
ofstream cout("datorii.out");
cin>>n>>q;
for(int i=1;i<=n;i++){
int x;
cin>>x;
updateAIB(i,x);
}
while(q--){
int op,x,y;
cin>>op>>x>>y;
if(op==0){
updateAIB(x,-y);
} else {
cout<<queryAIB(y)-queryAIB(x-1)<<'\n';
}
}
return 0;
}