Pagini recente » Cod sursa (job #3280780) | Cod sursa (job #1156420) | Cod sursa (job #901413) | Cod sursa (job #3225533) | Cod sursa (job #2900629)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int MAXN=100010;
int n,m,a[MAXN];
int s[MAXN],aib[MAXN];
int main() {
fin >>n>>m;
for (int i=1;i<=n;++i){
fin >>a[i];
s[i]=s[i-1]+a[i];
}
for (int i=1;i<=n;++i){
aib[i]=s[i]-s[i-((i^(i-1))&i)];
//fout <<aib[i]<<' ';
}
//fout <<'\n';
for (int i=1;i<=m;++i){
int c;
fin >>c;
if (c==0){
int val,pos;
fin >>pos>>val;
do{
aib[pos]-=val;
pos+=((pos^(pos-1))&pos);
}while (pos<=n);
}
else{
int x,y,sum1=0,sum2=0;
fin >>x>>y;
int kx=x-1;
while (kx>0){
sum1+=aib[kx];
kx-=((kx^(kx-1))&kx);
}
int ky=y;
while (ky>0){
sum2+=aib[ky];
ky-=((ky^(ky-1))&ky);
}
fout <<sum2-sum1<<'\n';
}
}
return 0;
}