Pagini recente » Cod sursa (job #1460928) | Cod sursa (job #1277349) | Cod sursa (job #1780743) | Cod sursa (job #2085791) | Cod sursa (job #1696343)
#include <stdio.h>
#define nrzero(x) ((x^(x-1))&x)
const int nmax=15001;
const int mmax=100001;
int n;
int aib[nmax];
void update(int poz, int val)
{
for (int i=poz; i<=n; i+=nrzero(i))
aib[i]+=val;
}
int compute(int poz)
{
int rez,i;
rez=0;
i=poz;
while (i)
{
rez+=aib[i];
i-=nrzero(i);
}
return rez;
}
int main()
{
FILE *f,*fout;
int m,i,x,y,z;
f=fopen("datorii.in","r");
fout=fopen("datorii.out","w");
fscanf(f,"%d%d",&n,&m);
for (i=1; i<=n; i++)
{
fscanf(f,"%d",&x);
update(i,x);
}
for (i=1; i<=m; i++)
{
fscanf(f,"%d%d%d",&x,&y,&z);
if (!x)
update(y,-z);
else
fprintf(fout,"%d\n",compute(z)-compute(y-1));
}
fclose(f);
fclose(fout);
}