Pagini recente » Cod sursa (job #2782578) | Cod sursa (job #2187889) | Cod sursa (job #3145700) | Cod sursa (job #2542939) | Cod sursa (job #1004172)
#include <cstdio>
#define Nmax 15001
using namespace std;
int N, M, aib[Nmax];
void update(int idx, int val){
while(idx <= N){
aib[idx] += val;
idx += (idx & -idx);
}
}
int query(int idx){
int sum = 0;
while(idx > 0){
sum += aib[idx];
idx -= (idx & -idx);
}
return sum;
}
int main(){
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d",&N,&M);
for(int i = 1; i <= N; ++i){
int x;
scanf("%d", &x);
update(i, x);
}
for(int i = 1; i <= M; ++i){
int t, a, b;
scanf("%d", &t);
switch(t){
case 0:
scanf("%d%d", &a, &b);
update(a, -b);
break;
case 1:{
scanf("%d%d", &a, &b);
int sA = query(a -1);
int sB = query(b);
printf("%d\n", sB - sA);
break;
}
}
}
return 0;
}