Pagini recente » Cod sursa (job #627614) | Cod sursa (job #1333766) | Cod sursa (job #1184549) | Monitorul de evaluare | Cod sursa (job #3249852)
#include <fstream>
using namespace std;
const int N = 15000;
int bit[N+1];
int v[N+1];
ifstream cin("datorii.in");
ofstream cout("datorii.out");
void update (int i, int val){
while(i<=N){
bit[i]+=val;
i+=i&-i;
}
}
int prefix(int i){
int sum = 0;
while(i>0){
sum+=bit[i];
i-=i&-i;
}
return sum;
}
int main()
{
int n;
cin>>n;
int m;
cin>>m;
for (int i = 1; i<=n;i++){
int x;
cin>>x;
v[i]=x;
update(i,x);
}
for (int i = 1; i<=m;i++){
bool op;
cin>>op;
int t,v;
cin>>t>>v;
if(op==0){
update(t, -v);
}
else{
cout<<prefix(v)-prefix(t-1)<<'\n';
}
}
}