Pagini recente » Cod sursa (job #2270701) | Cod sursa (job #3039326) | Cod sursa (job #2740625) | Cod sursa (job #950938) | Cod sursa (job #1248178)
#include <iostream>
#include <stdio.h>
using namespace std;
int n,m,sum[15005];
void update(int idx ,int val){
for(; idx <= n; idx += (idx & -idx)){
sum[idx] += val;
}
}
int query(int idx){
int s = 0;
for(; idx > 0; idx -= (idx & -idx)){
s += sum[idx];
}
return s;
}
void query2(int start,int end){
printf("%d\n", query(end) - query(start));
}
int main(){
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d",&n,&m);
int elt,j;
for(int i = 1; i <= n; i++){
scanf("%d",&elt);
update(i,elt);
}
while(m--){
int cmd,elt,x;
scanf("%d%d",&cmd,&elt);
switch(cmd){
case 0: scanf("%d",&x); update(elt,-1 * x); break;
case 1: scanf("%d",&x); query2(elt - 1,x); break;
}
}
return 0;
}