Pagini recente » Cod sursa (job #1183901) | Cod sursa (job #2495929) | Cod sursa (job #681323) | Cod sursa (job #1066350) | Cod sursa (job #2556182)
#include <bits/stdc++.h>
using namespace std;
int n,m,aib[15005],suma;
int lsb (int nr) {
return (nr & (-nr));
}
void updatee (int poz, int nr) {
while(poz<=n) {
aib[poz]+=nr;
poz+=lsb(poz);
}
}
int querrys (int poz) {
suma=0;
while(poz>0) {
suma+=aib[poz];
poz-=lsb(poz);
}
return suma;
}
int main () {
int nr,nr1,nr2;
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d", &n, &m);++m;
for(int i=1;i<=n;++i)
scanf("%d", &nr),updatee(i,nr);
while(--m) {
scanf("%d%d%d", &nr, &nr1, &nr2);
if(nr==0)
updatee(nr1,-nr2);
else
printf("%d\n", querrys(nr2)-querrys(nr1-1));
}
return 0;
}