Pagini recente » Cod sursa (job #702271) | Cod sursa (job #1379247) | Cod sursa (job #1748356) | Cod sursa (job #2453225) | Cod sursa (job #3191869)
#include <iostream>
#include <fstream>
using namespace std;
int n, m;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int aib[15006];
int ub(int x)
{
return (x & (-x));
}
void add (int x, int y)
{
for (int i = x; i <= n; i += ub(i))
{
aib[i] += y;
}
}
int sum (int x)
{
int rez = 0;
for (int i = x; i >= 1; i-=ub(i))
{
rez+=aib[i];
}
return rez;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
{
int q;
fin >> q;
add(i, q);
}
while(m--)
{
int op, a, b;
fin >> op >> a >> b;
if (op == 1)
fout << sum(b) - sum(a-1) << '\n';
else
add(a, -b);
}
return 0;
}