Pagini recente » Cod sursa (job #1399483) | Cod sursa (job #2746608) | Cod sursa (job #3164918) | Cod sursa (job #1102658) | Cod sursa (job #1945106)
#include <iostream>
#include <fstream>
#define zeros(x) ((-x)&(x))
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m;
int AIB[15005];
void add(int x, int val){
for(int i=x;i<=n;i+=zeros(i)){
AIB[i]+=val;
}
}
int sum(int x){
int s=0;
for(int i=x;i>=1;i-=zeros(i)){
s+=AIB[i];
}
return s;
}
int sum_interval(int a, int b){
return sum(b)-sum(a-1);
}
void read(){
int x;
in>>n>>m;
for(int i=1;i<=n;i++){
in>>x;
add(i,x);
}
}
void solve(){
int op,x,y;
for(int i=1;i<=m;i++){
in>>op>>x>>y;
if(!op){
add(x,-y);
}
else{
out<<sum_interval(x,y)<<"\n";
}
}
}
int main(){
read();
solve();
return 0;
}