Pagini recente » Istoria paginii utilizator/raluca1234 | Cod sursa (job #1023768) | Cod sursa (job #415360) | Cod sursa (job #2673066) | Cod sursa (job #2090883)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
const int nmax=100012;
int n,m,aib[nmax];
int lsb(int q){
return q & -q;
}
void update(int q, int qq){
while(q<=n){
aib[q]+=qq;
q+=lsb(q);
}
}
int query(int q){
int sum=0;
while(q){
sum+=aib[q];
q-=lsb(q);
}
return sum;
}
int main()
{
int a,b,c;
fin>>n>>m;
for(int i=1;i<=n;++i){
fin>>a;
update(i,a);
}
for(int i=1;i<=m;++i){
fin>>a>>b>>c;
if(a)fout<<query(c)-query(b-1)<<'\n';
else update(b,-c);
}
return 0;
}