Pagini recente » Cod sursa (job #1224106) | Cod sursa (job #1503229) | Cod sursa (job #1986391) | Istoria paginii home | Cod sursa (job #1559668)
#include <fstream>
#define NMax 15010
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int nElem, queries, BIT[NMax];
void updateBIT(int pos, int val, int sign)
{
while (pos <= nElem) {
BIT[pos] += sign * val;
pos = pos + (pos & (-pos));
}
}
int getSum(int pos)
{
int sum = 0;
while (pos > 0) {
sum += BIT[pos];
pos = pos - (pos & (-pos));
}
return sum;
}
int main()
{
f >> nElem >> queries;
int elem;
for (int i = 1; i <= nElem; i++) {
f >> elem;
updateBIT(i, elem, 1);
}
int cmd, num1, num2;
for (int i = 1; i <= queries; i++) {
f >> cmd >> num1 >> num2;
if (cmd == 0)
updateBIT(num1, num2, -1);
else
g << getSum(num2) - getSum(num1 - 1) << "\n";
}
return 0;
}