Pagini recente » Cod sursa (job #3178884) | Cod sursa (job #3168963) | Cod sursa (job #2446793) | Cod sursa (job #40591) | Cod sursa (job #335399)
Cod sursa(job #335399)
#include<stdio.h>
#define NMAX 15003
int n,m,i,cod,x,y;
int s[NMAX];
int nz(int val) {
int k=0;
while(val%2==0) {
k++;
val>>=1;
}
return k;
}
void add(int poz,int val) {
while(poz<=n) {
s[poz]+=val;
poz+=1<<nz(poz);
}
}
int sum(int poz) {
int suma=0;
while(poz) {
suma+=s[poz];
poz-=1<<nz(poz);
}
return suma;
}
int main() {
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++) {
scanf("%d",&x);
add(i,x);
}
while(m--) {
scanf("%d %d %d",&cod,&x,&y);
if(cod) printf("%d\n",sum(y)-sum(x-1));
else add(x,-y);
}
return 0;
}