Pagini recente » Cod sursa (job #632449) | Profil iloveloona | Cod sursa (job #2083451) | Cod sursa (job #564248) | Cod sursa (job #3357713)
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
const int maxN = 15000;
int aib[maxN];
void actualizare(int n, int poz, int val){
while(poz <= n){
aib[poz] += val;
int p2 = (poz & (-poz));
poz += p2;
}
}
int interogare(int n, int poz){
int s = 0;
while(poz > 0){
s += aib[poz];
int p2 = poz & (-poz);
poz -= p2;
}
return s;
}
int main(){
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++){
int xi;
cin >> xi;
actualizare(n, i, xi);
}
for(int i = 0; i < m; i++){
int tip;
cin >> tip;
if(!tip){
int t, v;
cin >> t >> v;
actualizare(n, t, -v);
}else{
int p, q;
cin >> p >> q;
cout << interogare(n, q) - interogare(n, p - 1) << " ";
}
}
return 0;
}