Pagini recente » Cod sursa (job #265805) | Cod sursa (job #2399763) | Cod sursa (job #470480) | Cod sursa (job #525563) | Cod sursa (job #2306417)
#include <iostream>
#include <fstream>
#define MAX_N 15005
long long int AIB[MAX_N];
int N, M;
int less_significant_bit(int num){
return num & -num;
}
void Add(int index, int value){
for(; index <= N; index += less_significant_bit(index)){
AIB[index] += value;
}
}
int Sum(int index){
int s = 0;
for(; index > 0; index -= less_significant_bit(index)){
s += AIB[index];
}
return s;
}
int main(){
std::ifstream in("datorii.in");
std::ofstream out("datorii.out");
in >> N >> M;
for(int i = 1; i <= N; ++i){
int val;
in >> val;
Add(i, val);
}
for(int i = 1; i <= M; ++i){
int op;
in >> op;
if(op == 0){
int T, V;
in >> T >> V;
Add(T, -V);
}
else{
int P, Q;
in >> P >> Q;
out << Sum(Q) - Sum(P - 1) << '\n';
}
}
return 0;
}