Pagini recente » Cod sursa (job #2624177) | Cod sursa (job #3134233) | Cod sursa (job #391677) | Cod sursa (job #2321558) | Cod sursa (job #2625727)
#include <bits/stdc++.h>
#define MAXN 15002
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int aib[MAXN], N;
int LSB(int x)
{
return x & (-x);
}
void Adauga(int zi, int val)
{
for (int i = zi; i <= N; i += LSB(i))
aib[i] += val;
}
int Suma (int zi)
{
int s = 0;
for (int i = zi; i > 0; i -= LSB(i))
s += aib[i];
return s;
}
int main() {
int M, nr, op, q1, q2;
fin >> N >> M;
for (int i = 1; i <= N; ++i){
fin >> nr;
Adauga(i, nr);
}
for (int i=0; i < M; i++) {
fin >> op >> q1 >> q2;
if (op == 0)
Adauga (q1, - q2);
if (op == 1)
fout << Suma(q2) - Suma(q1 - 1) << '\n';
}
return 0;
}