Pagini recente » Cod sursa (job #1914197) | Cod sursa (job #1972191) | Cod sursa (job #1097719) | Cod sursa (job #392473) | Cod sursa (job #2930249)
#include<fstream>
#include<iostream>
using namespace std;
int i,n,m,v[15005], aib[15005], p, x, p1, p2, c;
void add(int pos, int val){
while(pos<=n)
{
aib[pos]+=val;
pos+=pos&(-pos);
}
}
int sum(int pos)
{
int s= 0;
while(pos>0)
{
s+=aib[pos];
pos-=pos&(-pos);
}
return s;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d", &n, &m);
for(p = 1; p < n; p = p << 1);
for(int i = 1; i <= n; i++)
{
scanf("%d", &v[i]);
add(i, v[i]);
}
for(int i=1;i<=m;i++)
{
scanf("%d%d%d", &c, &p1, &p2);
if(c==0)
{
add(p1, -p2);
}
else {
printf("%d\n",sum(p2)- sum(p1-1));
}
}
}