Pagini recente » Cod sursa (job #1591265) | Cod sursa (job #226999) | Cod sursa (job #1867611) | Cod sursa (job #2701572) | Cod sursa (job #2666395)
// REZOLVARE PRIN ARBORI INDEXATI BINAR
#include <fstream>
using namespace std;
const int nMax = 15000;
int n, q, vec[nMax + 5], aib[nMax + 5];
int query(int x)
{
int sum = 0;
for (int i = x; i >= 1; i -= i&(-i))
sum += aib[i];
return sum;
}
int main()
{
ifstream fin("datorii.in");
ofstream fout("datorii.out");
fin >> n >> q;
for (int i = 1; i <= n; ++i)
fin >> vec[i];
for (int i = 1; i <= n; ++i)
for (int j = i; j <= n; j += j&(-j))
aib[j] += vec[i];
for (int i = 1; i <= q; ++i)
{
int num, a, b;
fin >> num >> a >> b;
if (num == 0)
{
for (int j = a; j <= n; j += j&(-j))
aib[j] -= b;
}
else if (num == 1)
fout << query(b) - query(a - 1) << '\n';
}
}