#include <stdio.h>
typedef long long ll;
const int n_ = 1e6 + 1;
int n, m, k;
ll arr[n_], tree[n_ * 2];
ll init(int now, int lft, int rgt) {
if (lft == rgt) return tree[now] = arr[lft];
return tree[now] = init(now * 2, lft, (lft + rgt) / 2) + init(now * 2 + 1, (lft + rgt) / 2 + 1, rgt);
}
void upd(int now, int idx, int lft, int rgt, ll dif) {
if (idx < lft || rgt < idx) return;
tree[now] += dif;
if (lft != rgt) {
upd(now * 2, lft, (lft + rgt) / 2, dif);
upd(now * 2 + 1, (lft + rgt) / 2 + 1, rgt, dif);
}
}
ll qry(int now, int bgn, int end, int lft, int rgt) {
if (bgn < lft || rgt < end) return 0;
if (lft <= bgn && end <= rgt) return tree[now];
return qry(now * 2, bgn, end, lft, (lft + rgt) / 2) + qry(now * 2 + 1, bgn, end, (lft + rgh) / 2 + 1, rgt);
}
int main() {
scanf("%d %d %d", &n, &m, &k);
for (int i = 1; i <= n; i++) scanf("%lld", &arr[i]);
init(1, 1, n);
for (int i = 0; i < m + k; i++) {
ll a, b, c;
scanf("%lld %lld %lld", &a, &b, &c);
if (x == 1)
arr[b] = c, upd(1, b, 1, n, c - arr[i]);
else
printf("%lld\n", qry(1, b, c, 1, n));
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgbl8gPSAxZTYgKyAxOwoKaW50IG4sIG0sIGs7CmxsIGFycltuX10sIHRyZWVbbl8gKiAyXTsKCmxsIGluaXQoaW50IG5vdywgaW50IGxmdCwgaW50IHJndCkgewoJaWYgKGxmdCA9PSByZ3QpIHJldHVybiB0cmVlW25vd10gPSBhcnJbbGZ0XTsKCXJldHVybiB0cmVlW25vd10gPSBpbml0KG5vdyAqIDIsIGxmdCwgKGxmdCArIHJndCkgLyAyKSArIGluaXQobm93ICogMiArIDEsIChsZnQgKyByZ3QpIC8gMiArIDEsIHJndCk7Cn0KCnZvaWQgdXBkKGludCBub3csIGludCBpZHgsIGludCBsZnQsIGludCByZ3QsIGxsIGRpZikgewoJaWYgKGlkeCA8IGxmdCB8fCByZ3QgPCBpZHgpIHJldHVybjsKCXRyZWVbbm93XSArPSBkaWY7CglpZiAobGZ0ICE9IHJndCkgewoJCXVwZChub3cgKiAyLCBsZnQsIChsZnQgKyByZ3QpIC8gMiwgZGlmKTsKCQl1cGQobm93ICogMiArIDEsIChsZnQgKyByZ3QpIC8gMiArIDEsIHJndCwgZGlmKTsKCX0KfQoKbGwgcXJ5KGludCBub3csIGludCBiZ24sIGludCBlbmQsIGludCBsZnQsIGludCByZ3QpIHsKCWlmIChiZ24gPCBsZnQgfHwgcmd0IDwgZW5kKSByZXR1cm4gMDsKCWlmIChsZnQgPD0gYmduICYmIGVuZCA8PSByZ3QpIHJldHVybiB0cmVlW25vd107CglyZXR1cm4gcXJ5KG5vdyAqIDIsIGJnbiwgZW5kLCBsZnQsIChsZnQgKyByZ3QpIC8gMikgKyBxcnkobm93ICogMiArIDEsIGJnbiwgZW5kLCAobGZ0ICsgcmdoKSAvIDIgKyAxLCByZ3QpOwp9CgppbnQgbWFpbigpIHsKCXNjYW5mKCIlZCAlZCAlZCIsICZuLCAmbSwgJmspOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBzY2FuZigiJWxsZCIsICZhcnJbaV0pOwoKCWluaXQoMSwgMSwgbik7CgoJZm9yIChpbnQgaSA9IDA7IGkgPCBtICsgazsgaSsrKSB7CgkJbGwgYSwgYiwgYzsKCQlzY2FuZigiJWxsZCAlbGxkICVsbGQiLCAmYSwgJmIsICZjKTsKCQlpZiAoeCA9PSAxKQoJCQlhcnJbYl0gPSBjLCB1cGQoMSwgYiwgMSwgbiwgYyAtIGFycltpXSk7CgkJZWxzZQoJCQlwcmludGYoIiVsbGRcbiIsIHFyeSgxLCBiLCBjLCAxLCBuKSk7Cgl9CgoKCXJldHVybiAwOwp9
prog.cpp: In function ‘void upd(int, int, int, int, ll)’:
prog.cpp:17:41: error: too few arguments to function ‘void upd(int, int, int, int, ll)’
upd(now * 2, lft, (lft + rgt) / 2, dif);
^
prog.cpp:13:6: note: declared here
void upd(int now, int idx, int lft, int rgt, ll dif) {
^~~
prog.cpp:18:49: error: too few arguments to function ‘void upd(int, int, int, int, ll)’
upd(now * 2 + 1, (lft + rgt) / 2 + 1, rgt, dif);
^
prog.cpp:13:6: note: declared here
void upd(int now, int idx, int lft, int rgt, ll dif) {
^~~
prog.cpp: In function ‘ll qry(int, int, int, int, int)’:
prog.cpp:25:90: error: ‘rgh’ was not declared in this scope
return qry(now * 2, bgn, end, lft, (lft + rgt) / 2) + qry(now * 2 + 1, bgn, end, (lft + rgh) / 2 + 1, rgt);
^~~
prog.cpp: In function ‘int main()’:
prog.cpp:37:7: error: ‘x’ was not declared in this scope
if (x == 1)
^