Pagini recente » Cod sursa (job #503225) | Borderou de evaluare (job #528032) | Cod sursa (job #632395) | Cod sursa (job #1237792) | Cod sursa (job #2875244)
#include <fstream>
#define zeros(x) (x^(x-1)&x)
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int a[15011],n;
void update(int k,int val)
{
while(k<=n)
{
a[k]=a[k]+val;
k=k+zeros(k);
}
}
int query(int k)
{
int s=0;
while(k>0)
{
s=s+a[k];
k=k-zeros(k);
}
return s;
}
int p,i,x,y,C;
int main()
{
f>>n>>p;
for(i=1;i<=n;i++)
{
f>>x;
update(i,x);
}
for(i=1;i<=p;i++)
{
f>>C>>x>>y;
if(C==0)
update(x,-y);
else
g<<query(y)-query(x-1)<<'\n';
}
return 0;
}