Pagini recente » Cod sursa (job #1117549) | Cod sursa (job #1894246) | Cod sursa (job #80156) | Cod sursa (job #1544139) | Cod sursa (job #2669843)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
#define Ub(x) (x & (-x))
#define NMAX 15001
int aib[NMAX], n, m, tip, a, b;
void add(int pos, int val) {
for(int i = pos; i <= n; i += Ub(i))
aib[i] += val;
}
int suma(int pos) {
int i, s = 0;
for(i = pos; i >= 1; i -= Ub(i))
s += aib[i];
return s;
}
int main() {
cin >> n >> m;
for(int i = 1; i <= n; i++) {
cin >> a;
add(i, a);
}
for(int i = 1; i <= m; i++) {
cin >> tip >> a >> b;
if(tip == 0)
add(a, -b);
else cout << suma(b) - suma(a - 1) << '\n';
}
return 0;
}