Pagini recente » Cod sursa (job #2930886) | Cod sursa (job #1403311) | Cod sursa (job #2504970) | Cod sursa (job #585134) | Cod sursa (job #3133597)
#include <iostream>
#include <fstream>
using namespace std;
int a, b, c, n, m, x, d[1000001];
int query(int p)
{
int sum = 0;
for (int i = p; i > 0; i -= (i & -i))
sum += d[i];
return sum;
}
void update(int p, int x)
{
for (int i = p; i <= n; i += (i & -i))
d[i] += x;
}
int main()
{
ifstream fin("datorii.in");
ofstream fout("datorii.out");
fin >> n >> m;
for (int i = 1; i <= n; i++)
{
fin >> x;
update(i, x);
}
for (int i = 1; i <= m; i++)
{
fin >> c >> a >> b;
if (c == 0)
{
update(a, -b);
}
if (c == 1)
{
fout << query(b) - query(a - 1) << "\n";
}
}
return 0;
}