Pagini recente » Cod sursa (job #402090) | Cod sursa (job #2496890) | Cod sursa (job #1138498) | Cod sursa (job #563539) | Cod sursa (job #2753153)
#include <fstream>
using namespace std;
const int N = 15e3;
int aib[N + 1], n;
void update(int poz, int val) {
while (poz <= n) {
aib[poz] += val;
poz += (poz & (-poz));
}
}
int sum(int poz) {
int s = 0;
while (poz > 0) {
s += aib[poz];
poz -= (poz & (-poz));
}
return s;
}
int main() {
ifstream in("datorii.in");
ofstream out("datorii.out");
int m;
in >> n >> m;
for (int i = 1; i <= n; ++i) {
int val;
in >> val;
update(i, val);
}
while (m--) {
bool tip;
in >> tip;
if (tip == 0) {
int poz, val;
in >> poz >> val;
update(poz, -val);
}
else {
int a, b;
in >> a >> b;
out << sum(b) - sum(a - 1) << '\n';
}
}
in.close();
out.close();
return 0;
}