Pagini recente » Cod sursa (job #1877292) | Cod sursa (job #2158511) | Cod sursa (job #3343118) | Cod sursa (job #2574859) | Cod sursa (job #3338298)
#include <iostream>
#include <fstream>
using namespace std;
ifstream input("datorii.in");
ofstream output("datorii.out");
int N, M, A[15001];
int lsb(int n){
return n & (-n);
}
void add(int pos, int amount){
for(int i = pos; i <= N; i += lsb(i))
A[i] += amount;
}
int compute(int pos){
int sum = 0;
for(int i = pos; i >= 1; i -= lsb(i))
sum += A[i];
return sum;
}
int main(){
input >> N >> M;
for(int i = 1; i <= N; i ++){
int x;
input >> x;
add(i, x);
}
for(int i = 0; i < M; i ++){
int code;
input >> code;
if(code == 0){
int T, V;
input >> T >> V;
add(T, -V);
}
else{
int P, Q;
input >> P >> Q;
output << compute(Q) - compute(P - 1) << "\n";
}
}
}