Pagini recente » Cod sursa (job #823782) | Cod sursa (job #2166141) | Cod sursa (job #1814473) | Clasament 120 | Cod sursa (job #2409368)
#include <fstream>
using namespace std;
const string FILE_NAME = "f";
const int N_MAX = 15005;
ifstream in { FILE_NAME + ".in" };
ofstream out { FILE_NAME + ".out" };
int N, M;
int aib[N_MAX];
void update(int i, int val) {
while (i <= N) {
aib[i] += val;
i += i & -i;
}
}
int sum(int i) {
int sol { 0 };
while (i) {
sol += aib[i];
i -= i & -i;
}
return sol;
}
void init() {
in >> N >> M;
for (int i { 1 }; i <= N; ++i) {
int x;
in >> x;
update(i, x);
}
}
void solve() {
while (M--) {
int c, a, b;
in >> c >> a >> b;
if (c == 0)
update(a, -b);
else
out << sum(b) - sum(a - 1) << '\n';
}
}
int main() {
init();
solve();
}