Pagini recente » Cod sursa (job #2815557) | Cod sursa (job #3133647)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void modify(vector<int>& c, int index, int value) {
while (index < c.size()) {
c[index] += value;
index += index & -index;
}
}
int getSum(const vector<int>& c, int index) {
int sum = 0;
while (index > 0) {
sum += c[index];
index -= index & -index;
}
return sum;
}
int main() {
ifstream inputFile("datorii.in");
ofstream outputFile("datorii.out");
int n, m;
inputFile >> n;
inputFile >> m;
vector<int> c(n + 1);
for (int i = 1; i <= n; i++) {
int a;
inputFile >> a;
modify(c, i, a);
}
for (int i = 1; i <= m; i++) {
int d, a, b;
inputFile >> d >> a >> b;
if (d == 0) {
modify(c, a, -b);
} else {
int result = getSum(c, b) - getSum(c, a - 1);
outputFile << result << "\n";
}
}
inputFile.close();
outputFile.close();
return 0;
}