Pagini recente » Cod sursa (job #545416) | Cod sursa (job #797577) | Cod sursa (job #2296034) | Cod sursa (job #3032193) | Cod sursa (job #1479365)
#include <cstdio>
const char iname[] = "datorii.in";
const char oname[] = "datorii.out";
const int MAXN = 700 + 5;
int n, m, tree[MAXN];
void update(int index, int val){
while(index <= n){
tree[index] += val;
index += index &(-index);
}
}
int querry(int index){
int sum = 0;
while(index > 0){
sum += tree[index];
index -= index &(-index);
}
return sum;
}
void read(){
freopen(iname, "r", stdin);
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; ++i){
int aux;
scanf("%d", &aux);
update(i, aux);
}
}
void solve(){
freopen(oname, "w", stdout);
for(int i = 0; i < m; ++i){
int c, a, b;
scanf("%d %d %d", &c, &a, &b);
if(c == 0) update(a, -b);
else printf("%d\n", querry(b)-querry(a-1));
}
}
int main()
{
read();
solve();
return 0;
}