Pagini recente » Cod sursa (job #50476) | Cod sursa (job #2716761) | Cod sursa (job #3195715) | Cod sursa (job #2736003) | Cod sursa (job #1221151)
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
FILE *f,*g;
int a,b,c,j,s,i,v[15001],n,m;
void addup(int x,int q)
{ while (x<=n)
{ v[x]-=q;
x=x+zeros(x);
}
}
long exe(int x)
{
int s=0;
while (x>0)
{ s+=v[x];
x=x-zeros(x);
}
return s;
}
int main()
{
f=fopen("datorii.in","r");
g=fopen("datorii.out","w");
fscanf(f,"%d%d",&n,&m);
for (i=1;i<=n;i++)
{int ok;fscanf(f,"%d",&ok);addup(i, -1 * ok);}
for (i=1;i<=m;i++)
{fscanf(f,"%d%d%d",&a,&b,&c);
if (a==0)
addup(b,c);
else
{s=0;//for (j=b;j<=c;j++)s+=v[j];
fprintf(g,"%d\n",exe(c)-exe(b-1));
}
}
return 0;
}