Pagini recente » Cod sursa (job #1449298) | Cod sursa (job #660555) | Cod sursa (job #1184118) | Cod sursa (job #1724660) | Cod sursa (job #3120430)
#include <iostream>
#include <fstream>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int AIB[60005];
int N, M;
void Update(int P, int quantity)
{
for (int i = P; i <= N; i += zeros(i))
AIB[i] = AIB[i] + quantity;
}
int Query(int P)
{
int SUM = 0;
for (int i = P; i > 0; i -= zeros(i))
SUM += AIB[i];
return SUM;
}
void Task()
{
fin >> N >> M;
for (int i = 1; i <= N; ++i)
{
int X;
fin >> X;
Update(i, X);
}
for (int i = 1; i <= M; ++i)
{
int C, T, V, P, Q;
fin >> C;
if (C == 0)
{
fin >> T >> V;
Update(T, V);
}
else
{
fin >> P >> Q;
fout << Query(Q) - Query(P - 1) << '\n';
}
}
}
int main()
{
Task();
return 0;
}