Pagini recente » Cod sursa (job #2802020) | Cod sursa (job #951438) | Cod sursa (job #136276) | Cod sursa (job #2358696) | Cod sursa (job #3289536)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
const int NMAX = 15000;
int N, M, AiB[NMAX+1];
void add(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(){
int op, x, y;
f >> N >> M;
//
for (int i=1; i<=N; i++) {
f >> x;
add(i, x);
}
//
while(M--) {
f >> op >> x >> y;
if (op == 0)
add(x, -y);
else
g << sum(y) - sum(x-1) << '\n';
}
//
f.close();
g.close();
return 0;
}