Pagini recente » Cod sursa (job #2699841) | Cod sursa (job #2685303) | Cod sursa (job #3313687) | Cod sursa (job #3311594) | Cod sursa (job #3311757)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n;
int bit[150050];
void update(int i,int val){
while(i<=n){
//cout << "hi" << i << '\n';
bit[i]+=val;
if(bit[i]<0) bit[i]=0;
i+=i&(-i);
}
}
int prefix(int i){
int sum=0;
while(i>0){
sum+=bit[i];
i-=i&-i;
}
return sum;
}
int main(){
int m,x,y,z;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>x;
update(i,x);
//cout<<bit[i]<<" ";
}
for(int i=1;i<=m;i++){
cin>>x>>y>>z;
if(x==0){
update(y,-z);
}
else{
cout<<prefix(z)-prefix(y-1)<<'\n';
}
}
}