Pagini recente » Cod sursa (job #953477) | Cod sursa (job #1789085) | Profil dornescuvlad | Cod sursa (job #91351) | Cod sursa (job #336261)
Cod sursa(job #336261)
#include <iostream>
using namespace std;
int n,m,x,sum[20000],type,y;
void update(int idx,int val){
for (int i=idx;i<=n;i+=(i & -i)){
sum[i]+=val;
}
}
int query(int idx){
int suma=0;
for (int i=idx;i>0;i-=(i & -i)){
suma+=sum[i];
}
return suma;
}
int main(){
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++){
scanf("%d",&x);
update(i,x);
}
for (int i=1;i<=m;i++){
scanf("%d %d %d",&type,&x,&y);
if (type){
printf("%d\n",query(y)-query(x-1));
}
else {
update(x,-y);
}
}
//system("pause");
return 0;
}