Pagini recente » Cod sursa (job #3177148) | Cod sursa (job #1734298) | Cod sursa (job #418774) | Cod sursa (job #540896) | Cod sursa (job #531461)
Cod sursa(job #531461)
#include <stdio.h>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
int i,n,m,x;
int AIB[15001];
int c,y;
FILE *f,*g;
void add(int de_unde, int cat)
{
for (int i=de_unde;i<=n;i+=zeros(i))
AIB[i]+=cat;
}
int query(int v)
{
int s=0;
for (int i=v;i>0;i-=zeros(i))
s+=AIB[i];
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++)
{
fscanf(f,"%d",&x);
add(i,x);
}
for (i=1;i<=m;i++)
{
fscanf(f,"%d %d %d",&c,&x,&y);
if (c)
fprintf(g,"%d \n",query(y)-query(x-1));
else
add(x,-y);
}
fclose(f);
fclose(g);
return 0;
}