Pagini recente » Istoria paginii arbori | Cod sursa (job #897189) | Cod sursa (job #869067) | Cod sursa (job #2229895) | Cod sursa (job #2289638)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout("datorii.out");
int a[20000], t[20000];
int n,m;
void upd(int k, int x){
for(int i=k; i<=n; i+=(i&-i))
t[i]+=x;
}
int q(int k){
int r=0;
for(int i = k; i>0; i-=(i&-i))
r+=t[i];
return r;
}
int main(){
fin>>n>>m;
for(int i = 1; i<=n; i++){
fin>>a[i];
upd(i, a[i]);
}
int x,y,c;
for(int i=0; i<m; i++){
fin>>c>>x>>y;
if(c){
fout<<q(y)-q(x-1)<<"\n";
} else {
upd(x, -y);
}
}
return 0;
}