Pagini recente » Cod sursa (job #3228331) | Cod sursa (job #288096) | Cod sursa (job #2649398) | Cod sursa (job #2052257) | Cod sursa (job #93855)
Cod sursa(job #93855)
#include<stdio.h>
int n,m,w[15002],a,b,q,u[15002];
long aib(int k)
{
long s=0;
while (k>0)
{
s+=w[k];
k=k-((k^(k-1))&k);
}
return s;
}
void aib2()
{
long r,e;
r=aib(b-1);
e=aib(q);
e-=r;
printf("%ld\n",e);
}
void stergere()
{
int j;
w[b]-=q;
j=b;
while (j+((j^(j-1))&j)<=n)
{
j+=(j^(j-1))&j;
w[j]-=q;
}
}
void citire()
{
freopen("datorii.in","r",stdin);
scanf("%d%d", &n, &m);
int i,t,j;
for (i=1; i<=n; i++)
{
scanf("%d", &t);
w[i]+=t;
j=i;
while (j+((j^(j-1))&j)<=n)
{
j+=(j^(j-1))&j;
w[j]+=t;
}
}
for (i=1; i<=m; i++)
{
scanf("%d%d%d",&a,&b,&q);
if (a==0)
//w[b]-=q;
stergere();
else aib2();
}
fclose(stdin);
}
int main()
{
freopen("datorii.out","w",stdout);
citire();
fclose(stdout);
return 0;
}