Pagini recente » Cod sursa (job #740602) | Cod sursa (job #1348388) | Cod sursa (job #177168) | Cod sursa (job #1461499) | Cod sursa (job #3319818)
#include <bits/stdc++.h>
#define lsb(x) (x & (-x))
using namespace std;
int a[100000];
void update(int x, int val, int N, int a[]){
for (int i =x; i<=N; i+= lsb(i))
a[i] += val;
}
int query (int x, int a[]){
int sum = 0;
for (int i = x; i> 0; i -=lsb(i)){
sum+=a[i];
}
return sum;
}
int main(){
int n,m,z;
cin >> n >> m;
for (int i = 0; i<n; ++i){
cin >> z;
update(i, z, n, a);
}
int x,val,y;
for (int j =0; j<m; ++j){
int b;
cin >> b;
if (b == 0){
cin >> x >> val;
update(x,val, n, a);
}
else if (b==1){
cin >> x >>y;
cout << query(y,a) - query(x-1, a)<<"\n";
}
}
}