Pagini recente » Cod sursa (job #2406952) | Cod sursa (job #1606231) | Cod sursa (job #1574087) | Cod sursa (job #168360) | Cod sursa (job #3313161)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int DIM = 15005;
int n, m, c;
int aib[DIM];
void Update(int i, int v);
int Query(int i);
int main()
{
fin >> n >> m;
for (int i = 1, temp; i <= n; ++i)
{
fin >> temp;
Update(i, -temp);
}
while (m--)
{
fin >> c;
if (c)
{
int i, j;
fin >> i >> j;
fout << Query(j) - Query(i - 1) << '\n';
}
else
{
int i, v;
fin >> i >> v;
Update(i, v);
}
}
return 0;
}
int Query(int i)
{
int suma(0);
for ( ; i; i -= i & -i)
suma += aib[i];
return suma;
}
void Update(int i, int v)
{
for ( ; i <= n; i += (i & -i))
aib[i] -= v;
}