Pagini recente » Cod sursa (job #295677) | Cod sursa (job #743396) | Cod sursa (job #2602357) | Cod sursa (job #1540586) | Cod sursa (job #312347)
Cod sursa(job #312347)
#include<stdio.h>
int A[30002],s,N,M,p,b;
void act(int a, int b)
{p=0;
while(a<=N)
{A[a]+=b;
while(!(a&(1<<p)))
++p;
a+=1<<p;
++p;}
}
int in(int a)
{p=0;b=0;
while(a>0)
{b+=A[a];
while(!(a&(1<<p)))
++p;
a-=1<<p;
++p;}
return b;}
int main()
{FILE *f=fopen("datorii.in","r"),*g=fopen("datorii.out","w");
int x,p,q;
fscanf(f,"%d%d",&N,&M);
for(x=1;x<=N;++x)
{fscanf(f,"%d",&q);
act(x,q);}
for(;M;--M)
{fscanf(f,"%d%d%d",&x,&p,&q);
if(x){s=in(q)-in(p-1);
fprintf(g,"%d\n",s);}
else act(p,-q);}
fclose(f);
fclose(g);
return 0;
}