Pagini recente » Istoria paginii runda/minus/clasament | Cod sursa (job #2425985) | Cod sursa (job #2752091) | Cod sursa (job #1104614) | Cod sursa (job #2451490)
#include <fstream>
using namespace std;
#define zeros(x) x&-x
ifstream f("datorii.in");
ofstream g("datorii.out");
int aib[15001], n, m;
void add(int val ,int poz) {
for(int i = poz; i <= n; i+= zeros(i))
aib[i] += val;
}
int sum(int a) {
int s = 0;
for(int i = a; i > 0; i -= zeros(i))
s += aib[i];
return s;
}
int main() {
f >> n >> m;
int x;
for(int i = 1; i <= n; i++) {
f >> x;
add(x, i);
}
int op, a, b;
for(int i = 1; i <= m; i++) {
f >> op >> a >> b;
if(!op)
add(-b, a);
else
g << sum(b)- sum(a-1) << '\n';
}
}