Pagini recente » Cod sursa (job #2836595) | Cod sursa (job #2066699) | Cod sursa (job #1411128) | Cod sursa (job #2830991) | Cod sursa (job #2105991)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int zeros(int i){
return i&(i^(i-1));
}
int BIT[15050];
int nr;
void add(int x, int cantitate){
int i;
for(i=x;i<=nr;i+=zeros(i)) BIT[i]+=cantitate;
}
int calc(int x){
int i,rez=0;
for(i=x;i>0;i-=zeros(i)) rez+=BIT[i];
return rez;
}
int main()
{int nroperatii;
int op,arg1,arg2;
in>>nr>>nroperatii;
for(int i=1;i<=nr;i++){
int x;
in>>x;
add(i,x);
}
for(int i=1;i<=nroperatii;i++){
in>>op>>arg1>>arg2;
if(op==0){
add(arg1,-arg2);
}
else {
out<<calc(arg2)-calc(arg1-1);
out<<'\n';
}
}
return 0;
}