Pagini recente » Cod sursa (job #87761) | Cod sursa (job #1340203) | Cod sursa (job #695666) | Cod sursa (job #300078) | Cod sursa (job #1694716)
#include <stdio.h>
#include <algorithm>
#include <math.h>
using namespace std;
#define ll long long unsigned
#define pb push_back
#define X first
#define Y second;
int aib[15005],n;
void update(int poz, int x){
for(;poz <= n;poz += poz&(-poz)){
aib[poz] += x;
}
}
int query(int poz){
int res = 0;
for(;poz;poz -= poz&(-poz)){
res += aib[poz];
}
return res;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int q,x,i;
scanf("%d %d",&n,&q);
for(i = 1;i <= n;i++){
scanf("%d",&x);
update(i, x);
}
int op,z,v;
for(i = 1;i <= q;i++){
scanf("%d %d %d",&op,&z,&v);
if(op == 0){
update(z, -v);
}else{
printf("%d\n",query(v)-query(z-1));
}
}
return 0;
}