Pagini recente » Cod sursa (job #1011746) | Cod sursa (job #2892280) | Cod sursa (job #1217512) | Cod sursa (job #132049) | Cod sursa (job #1248207)
#include <iostream>
using namespace std;
int a[15005],n,m;
void add(int i, int x){
for(; i <= n; i += (i & -i)){
a[i] += x;
}
}
void update(int i, int x){
for(; i <= n; i += (i & -i)){
a[i] -= x;
}
}
int query(int i){
int sum = 0;
for(; i > 0; i -= (i & -i))
sum += a[i];
return sum;
}
void query(int s, int t){
printf("%d\n",query(t) - query(s - 1));
}
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 v;
scanf("%d",&v);
add(i,v);
}
for(int i = 0; i < m; i++){
int t,a,b;
scanf("%d%d%d",&t,&a,&b);
if(t == 0)
update(a,b);
if(t == 1)
query(a,b);
}
return 0;
}