Pagini recente » Cod sursa (job #3355137) | Rating Olariu Mario Andrei (Olariu_Mario) | Cod sursa (job #3337322) | Cod sursa (job #3350616) | Cod sursa (job #3309844)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[15001],aib[15001],n,m,op,a,b;
void update(int pos, int val){
while(pos<=n){
aib[pos]+=val;
pos+=pos&(-pos);
}
}
int query(int a, int b){
if(a!=1){
return query(1,b)-query(1,a-1);
}
int suma=0,pos=b;
while(pos>0){
suma+=aib[pos];
pos-=pos&(-pos);
}
return suma;
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++){
fin>>v[i];
update(i,v[i]);
}
for(int i=1;i<=m;i++){
fin>>op>>a>>b;
if(op==0){
update(a,-b);
}
else{
fout<<query(a,b)<<'\n';
}
}
return 0;
}