Pagini recente » Cod sursa (job #2599831) | Cod sursa (job #837761) | Cod sursa (job #1045375) | Cod sursa (job #1178315) | Cod sursa (job #2404686)
#include <stdio.h>
using namespace std;
//ifstream cin("datorii.in");
//ofstream cout("datorii.out");
#define zeros(x) ((x^(x-1))&x)
FILE *in = fopen("datorii.in", "r"), *out = fopen("datorii.out", "w");
long long int AIB[15005];
int n;
void add(int x, long long int quantity) {
for(int i = x; i <= n; i += zeros(i))
AIB[i] += quantity;
}
long long int compute(int x) {
long long int sum = 0;
for(int i = x; i > 0; i -= zeros(i))
sum += AIB[i];
return sum;
}
int main() {
//ios::sync_with_stdio(false);
int m, tmp;
//cin >> n >> m;
fscanf(in, "%d %d", &n, &m);
//int m, tmp;
for(int i = 1; i <= n; i++) {
//cin >> tmp;
fscanf(in, "%d", &tmp);
add(i, tmp);
}
int op, qt, day, st, dr;
for(int i = 1; i <= m; i++) {
//cin >> op;
fscanf(in, "%d", &op);
if(op == 0) {
//cin >> day >> qt;
fscanf(in, "%d %d", &day, &qt);
add(day, -qt);
}
else {
//cin >> st >> dr;
fscanf(in, "%d %d", &st, &dr);
//cout << compute(dr) - compute(st-1) << endl;
fprintf(out, "%lld", (compute(dr) - compute(st-1)));
}
}
}