Pagini recente » Cod sursa (job #2856994) | Cod sursa (job #478313) | Cod sursa (job #1052986) | Cod sursa (job #2063906) | Cod sursa (job #2404666)
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
#define zeros(x) ((x^(x-1))&x)
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() {
int m, tmp;
cin >> n >> m;
//int m, tmp;
for(int i = 1; i <= n; i++) {
cin >> tmp;
add(i, tmp);
}
int op, qt, day, st, dr;
for(int i = 1; i <= m; i++) {
cin >> op;
if(op == 0) {
cin >> day >> qt;
add(day, -qt);
}
else {
cin >> st >> dr;
cout << compute(dr) - compute(st-1) << endl;
}
}
}