Pagini recente » Cod sursa (job #33946) | Cod sursa (job #1766263) | Cod sursa (job #1501183) | Cod sursa (job #2851668) | Cod sursa (job #2844982)
#include <bits/stdc++.h>
using namespace std;
ifstream file_in("datorii.in");
ofstream file_out("datorii.out");
int N, M, i, AIB[15005];
inline int LSB(int Value) { return Value & (-Value); }
void Update(int Position, int Value)
{
while (Position <= N)
{
AIB[Position] += Value;
Position += LSB(Position);
}
}
int Query(int Position)
{
int Result = 0;
while (Position)
{
Result += AIB[Position];
Position -= LSB(Position);
}
return Result;
}
int main()
{
int Value, Code, A, B;
file_in >> N >> M;
for (i = 1; i <= N; ++i)
{
file_in >> Value;
Update(i, Value);
}
for (i = 1; i <= M; ++i)
{
file_in >> Code >> A >> B;
if (!Code) Update(A, -B);
else file_out << Query(B) - Query(A - 1) << '\n';
}
return 0;
}