Pagini recente » Cod sursa (job #327897) | Rating Stoica Ioana Raluca (ioana126) | Cod sursa (job #1785783) | Cod sursa (job #2293643) | Cod sursa (job #781291)
Cod sursa(job #781291)
#include <fstream>
const int N(15001);
int bit [N], n, m;
int lsb (int x)
{
return x & -x;
}
int bit_sum (int x)
{
int sum(0);
while (x)
{
sum += bit[x];
x -= lsb(x);
}
return sum;
}
void update (int x, int val)
{
while (x <= n)
{
bit[x] += val;
x += lsb(x);
}
}
int main()
{
int q,x,y;
std::ifstream input("datorii.in");
input >> n >> m;
for(int i(1) ; i <= n ; ++i)
{
input >> x;
update(i,x);
}
std::ofstream output("datorii.out");
while (m--)
{
input >> q >> x >> y;
if (q == 0)
update(x,-y);
else
output << bit_sum(y) - bit_sum(x - 1) << '\n';
}
input.close();
output.close();
return 0;
}