Pagini recente » Cod sursa (job #809255) | Cod sursa (job #2806255) | Cod sursa (job #2563716) | Cod sursa (job #2631037) | Cod sursa (job #1591261)
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
#define MAX 15008
int n,a,b,x,m,arb[MAX];
void upd(int poz, int val)
{
int c=0;
while(poz<=n)
{
arb[poz]+=val;
while((poz&(1<<c))==0)++c;
poz=poz+(1<<c);
++c;
}
}
int query(int poz)
{
int s=0,c=0;
while(poz>0)
{
s=s+arb[poz];
while((poz&(1<<c))==0)++c;
poz=poz-(1<<c);
++c;
}
return s;
}
int main()
{
in>>n>>m;
for(int i=1;i<=n;i++)
{
in>>a;
upd(i,a);
}
while(m--)
{
in>>x>>a>>b;
if(x==0)
upd(a,-b);
else
out<<query(b)-query(a-1)<<'\n';
}
return 0;
}