Pagini recente » Cod sursa (job #1084861) | Cod sursa (job #2175449) | Cod sursa (job #361173) | Cod sursa (job #1387607) | Cod sursa (job #3037109)
#include <bits/stdc++.h>
#define NMAX 15008
#define LSB(i) i & (-i)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m, BIT[NMAX];
void Update(int pos, int value) {
for(int i = pos; i <= n; i += LSB(i))
BIT[i] += value;
}
int Query(int pos) {
int ans = 0;
for(int i = pos; i > 0; i -= LSB(i))
ans += BIT[i];
return ans;
}
int main() {
fin >> n >> m;
for(int i = 1; i <= n; i ++) {
int x; fin >> x;
Update(i, x);
}
for(int i = 1; i <= m; i ++) {
int task, a, b;
fin >> task >> a >> b;
if(task) {
fout << Query(b) - Query(a - 1) << '\n';
continue;
}
Update(a, -b);
}
return 0;
}