Pagini recente » Cod sursa (job #1231673) | Istoria paginii runda/pregatireoji-lensumin120pct/clasament | Cod sursa (job #1612453) | Cod sursa (job #391412) | Cod sursa (job #2164835)
#include <fstream>
#define p2(x) (x ^ (x-1)) & x
using namespace std;
int n, op, x, cod, a[100001];
void adauga(int poz, int val) {
for (int i = poz; i <= n; i += p2(i))
a[i] += val;
}
int suma(int poz) {
int s = 0;
for (int i = poz; i > 0; i -= p2(i))
s += a[i];
return s;
}
int main () {
int a, b;
ifstream fi("datorii.in");
ofstream fo("datorii.out");
fi >> n >> op;
for (int i = 1; i <= n; i++)
fi >> x, adauga(i, x);
for (int i = 1; i <= op; i++) {
fi >> cod >> a >> b;
if (!cod)
adauga(a, -b);
else
fo << suma(b)-suma(a-1) << '\n';
}
return 0;
}