Pagini recente » Cod sursa (job #882675) | Cod sursa (job #2497684)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int y2k(int x){
return (x^(x-1))&x;
}
int n, m;
int bit[15041];
void addit(int p, int x){
for(int i = p; i <= n; i += y2k(i)){
bit[i] += x;
}
}
int calcit(int p){
int s = 0;
for(int i = p; i >= 1; i -= y2k(i)){
s += bit[i];
}
return s;
}
int btwit(int a, int b){
return calcit(b) - calcit(a-1);
}
int main(){
fin >> n >> m;
for(int i = 1; i <= n; ++i){
int a;fin >> a;
addit(i, a);
}
for(int i = 0; i < m; ++i){
int op, a, b;
fin >> op >> a >> b;
if(op == 0){
addit(a, -b);
}else{
fout << btwit(a, b) << "\n";
}
}
return 0;
}