Pagini recente » Cod sursa (job #2346200) | Cod sursa (job #3218432) | Cod sursa (job #1484759) | Cod sursa (job #1602707) | Cod sursa (job #2930891)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
#define stinl static inline
constexpr int MAX_N = 15005;
constexpr int MAX_M = 100005;
using i64 = long long;
namespace FenwickTree {
i64 tree[MAX_N];
int N;
stinl void add(int i, int x) {
for (; i <= N; i += i & (-i))
tree[i] += x;
}
stinl i64 query(int i) {
i64 sum = 0;
for (; i > 0; i -= i & (-i))
sum += tree[i];
return sum;
}
stinl i64 segment(int i1, int i2) {
return query(i2) - query(i1 - 1);
}
}
int N, M, i, x, type, A, B;
int main() {
fin >> N >> M;
FenwickTree::N = N;
for (i = 1; i <= N; i++) {
fin >> x;
FenwickTree::add(i, x);
}
for (i = 1; i <= M; i++) {
fin >> type >> A >> B;
if (type == 0) FenwickTree::add(A, -B);
else fout << FenwickTree::segment(A, B) << '\n';
}
fin.close();
fout.close();
return 0;
}