Pagini recente » Cod sursa (job #3039951) | Cod sursa (job #1530381) | Cod sursa (job #3032988) | Cod sursa (job #3139638) | Cod sursa (job #2900626)
#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;
}