Cod sursa(job #428034)
#include<fstream>
#include<cstdio>
using namespace std;
#define zeros(x) ((x^(x-1))&x)
ifstream f("datorii.in");
FILE *g;
int aib[16000],a,i,j,n,m,p,q,o;
void add(int x, int quant)
{
for(int ii=x;ii<=n;ii+=zeros(ii))
aib[ii]+=quant;
}
int compute(int x)
{
int rez=0;
for(int ii=x;ii>0;ii-=zeros(ii))
rez+=aib[ii];
return rez;
}
int main()
{
f>>n>>m;
g=fopen("datorii.out","w");
for(i=1;i<=n;i++)
{
f>>a;
add(i,a);
}
for(i=1;i<=m;i++)
{
f>>o;
if(o)
{
f>>p>>q;
fprintf(g,"%d\n",compute(q)-compute(p-1));
}
else
{
f>>p>>q;
add(p,-q);
}
}
fclose(g);
f.close();
return 0;
}