Pagini recente » Cod sursa (job #429185) | Cod sursa (job #497203) | Cod sursa (job #324035) | Cod sursa (job #3211776) | Cod sursa (job #2976865)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5 + 1;
int aib[NMAX];
int n, m;
int lsb(int poz) {
return poz & -poz;
}
void update(int poz, int val) {
while(poz <= n) {
aib[poz] += val;
poz += lsb(poz);
}
}
void query(int poz) {
int sum = 0;
while (pos > 0) {
sum += aib[pos];
pos -= lsb(pos);
}
return sum;
}
void search(int val) {
int pas = 1 << 17,
}
int main() {
//ifstream cin("prim.in");
//ofstream cout("prim.out");
cin >> n >> m;
for(int i = 1; i <= n; i++) {
int x;
cin >> x;
update(i, x);
}
for(int i = 1; i <= m; i++) {
int cod;
cin >> cod;
if(cod == 0) {
int a, b;
cin >> a >> b;
update(a, b);
}
else if(cod == 1) {
int a, b;
cin >> a >> b;
cout << query(b) - querry(a-1);
}
else {
int a;
cin >> a;
cout << search(a);
}
}
return 0;
}