Pagini recente » Cod sursa (job #935955) | Cod sursa (job #1069473) | Cod sursa (job #363320) | Cod sursa (job #1949251) | Cod sursa (job #2386602)
#include <cstdio>
#define zeros(x) ((x ^ (x - 1)) & x )
using namespace std;
int aib[15005], n, m;
int x;
void add(int x, int quantity)
{
int i;
for (i = x; i <= n; i += zeros(i))
aib[i] += quantity;
}
int compute(int x)
{
int i, ret = 0;
for (i = x; i > 0; i -= zeros(i))
ret += aib[i];
return ret;
}
int rez(){
scanf("%d %d",&n, &m);
for(int i=1; i<=n;i++){
scanf("%d",&x);
add(i,x);
}
}
void query(){
int tip, a, b;
for(int i=1; i<=m; i++){
scanf("%d %d %d\n",&tip, &a, &b);
if(tip==0)
add(a,-b);
else printf("%d\n",compute(b)-compute(a-1));
}
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
rez();
query();
return 0;
}