Pagini recente » Cod sursa (job #1711937) | Cod sursa (job #2882506) | Cod sursa (job #618475) | Cod sursa (job #2585932) | Cod sursa (job #1895676)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int NMAX = 15005;
int n, queries;
int BIT[NMAX];
void update_plus(int idx, int val) {
while (idx <= n) {
BIT[idx] += val;
idx += (idx & -idx);
}
}
void update_minus(int idx, int val) {
while (idx <= n) {
BIT[idx] -= val;
idx += (idx & -idx);
}
}
int getSum(int idx) {
int sum = 0;
while (idx > 0) {
sum += BIT[idx];
idx -= (idx & -idx);
}
return sum;
}
int main()
{
fin >> n >> queries;
for (int i = 0; i < n; ++ i) {
int temp;
fin >> temp;
update_plus(i + 1, temp);
}
for (int i = 0; i < queries; ++ i) {
int task, x , y;
fin >> task;
fin >> x >> y;
if (task == 0)
update_minus(x, y);
else
fout << getSum(y) - getSum(x - 1) << "\n";
}
fin.close();
fout.close();
return 0;
}