Pagini recente » Cod sursa (job #666857) | Cod sursa (job #2735522) | Cod sursa (job #933942) | Cod sursa (job #3138005) | Cod sursa (job #2610898)
#include <fstream>
#define ub(x) (x&(-x))
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
constexpr int NMAX = 15e3 + 5;
int aib[NMAX];
int N;
void Update (int poz, int val)
{
for (int i = poz; i <= N; i += ub(i))
aib[i] -= val;
}
int Query (int poz)
{
int S = 0;
for (int i = poz; i > 0; i -= ub(i))
S += aib[i];
return S;
}
void Tip_0 ()
{
int a, b;
f >> a >> b;
Update(a, b);
}
void Tip_1 ()
{
int a, b;
f >> a >> b;
g << Query(b) - Query(a-1) << '\n';
}
void Read_and_Solve ()
{
int M;
f >> N >> M;
for (int i = 1; i <= N; ++i)
{
int x;
f >> x;
Update(i, -x);
}
for (; M; --M)
{
int Task;
f >> Task;
if (Task == 0) Tip_0();
if (Task == 1) Tip_1();
}
}
int main ()
{
Read_and_Solve();
return 0;
}