Pagini recente » Cod sursa (job #1881882) | Cod sursa (job #517021) | Cod sursa (job #1876910) | Cod sursa (job #2574852) | Cod sursa (job #3322026)
#include <iostream>
#include <fstream>
using namespace std;
#ifdef LOCAL
#define fin cin
#define fout cout
#else
ifstream fin("datorii.in");
ofstream fout("datorii.out");
#endif
#define int long long
int n;
int v[200001], aib[200001];
void update(int pos, int val) {
while (pos <= n) {
aib[pos] += val;
pos += (pos & (-pos));
}
}
int prefsum(int pos) {
int s = 0;
while (pos > 0) {
s += aib[pos];
pos -= (pos & (-pos));
}
return s;
}
int32_t main()
{
int q, t, a, b;
fin >> n >> q;
for (int i=1; i<=n; i++) {
fin >> v[i];
update(i, v[i]);
}
for (int i=1; i<=q; i++) {
fin >> t >> a >> b;
if (t == 0) {
update(a, -b);
v[a] = b;
}
else fout << prefsum(b) - prefsum(a - 1) << '\n';
}
}