Pagini recente » Cod sursa (job #1552308) | Cod sursa (job #2243223) | Cod sursa (job #1956829) | Cod sursa (job #2451015) | Cod sursa (job #3319838)
#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(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
freopen("aib.in", "r", stdin);
freopen("aib.out", "w", stdout);
int n,m,z;
cin >> n >> m;
for (int i = 0; i<n; ++i){
cin >> z;
update(i+1, 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";
}
}
}