Pagini recente » Cod sursa (job #178010) | Cod sursa (job #2225493) | Cod sursa (job #2561382) | Cod sursa (job #1110390) | Cod sursa (job #948834)
Cod sursa(job #948834)
#include <fstream>
#define MAX 15005
#define op(x) ((x) & (-x))
using namespace std;
int N, M;
int AIB[MAX];
void update(const int &val, int poz) {
for(; poz <= N; poz += op(poz))
AIB[poz] += val;
}
int query(int poz) {
int ans = 0;
for(; poz; poz -= op(poz))
ans += AIB[poz];
return ans;
}
int main() {
ifstream in("datorii.in");
in >> N >> M;
for(int i = 1, A; i <= N; i++) {
in >> A;
update(A, i);
} ofstream out("datorii.out");
for(int i = 1, A, B, C; i <= M; i++) {
in >> A >> B >> C;
switch(A) {
case 0: C *= -1; update(C, B); break;
case 1: out << query(C) - query(B - 1) << "\n"; break;
}
} in.close(); out.close();
}