Pagini recente » Cod sursa (job #2442965) | Cod sursa (job #416202) | Cod sursa (job #1342888) | Cod sursa (job #505310) | Cod sursa (job #2346203)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int NMax = 15000;
int N, M, p, a, b, AIB[NMax + 5];
void Update(int P, int V)
{
for(int i = P; i <= N; i += (i & (-i)))
AIB[i] += V;
}
int Sum(int P)
{
int Sol = 0;
for(int i = P; i > 0; i -= (i & (-i)))
Sol += AIB[i];
return Sol;
}
int main()
{
fin >> N >> M;
for(int i = 1; i <= N; i++)
fin >> a, Update(i, a);
for(int i = 0; i < M; i++)
{
fin >> p >> a >> b;
if(p == 0)
Update(a, -b);
if(p == 1)
fout << Sum(b) - Sum(a - 1) << '\n';
}
fin.close();
fout.close();
return 0;
}