Pagini recente » Cod sursa (job #255627) | Cod sursa (job #2674883) | Cod sursa (job #1341488) | Cod sursa (job #2142337) | Cod sursa (job #30137)
Cod sursa(job #30137)
#include<stdio.h>
#define lsb(x) (x)&((x)^((x)-1))
int s[15002],n,m;
int sum(int start, int end)
{ int sum=0, slow=0, i;
for(i=end;i;i-=lsb(i))
sum+=s[i];
for(i=start-1;i;i-=lsb(i))
slow+=s[i];
return sum-slow;
}
void mod(int poz, int val)
{ int i;
for(i=poz;i<=n;i+=lsb(i))
s[i]-=val;
}
int main()
{ int a,b,op,i;
freopen("datorii.in","rt",stdin);
//freopen("datorii.out","wt",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{ scanf("%d",&a);
mod(i, -a);
}
for(i=0;i<m;i++)
{ scanf("%d %d %d",&op,&a,&b);
if(!op) mod(a, b);
else printf("%d\n",sum(a,b));
}
return 0;
}