Pagini recente » Cod sursa (job #2771479) | Cod sursa (job #844100) | Cod sursa (job #2297620) | Cod sursa (job #724067) | Cod sursa (job #2916417)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int n, m;
int a[15005], s[15005];
int lg2[15002], pw2[20];
void precalc();
void read();
void update(int poz, int val);
int ans(int poz);
int main(){
precalc();
read();
return 0;
}
int ans(int poz){
int r = 0;
for (int i = poz; i > 0; i -= i & -i)
r += s[i];
return r;
}
void update(int poz, int val){
for (int i = poz; i <= n; i += i & -i)
s[i] += val;
}
void read(){
fin >> n >> m;
for (int i = 1; i <= n; i++){
fin >> a[i];
update(i, a[i]);
}
int x, y, z;
for (int i = 0; i < m; i++){
fin >> z >> x >> y;
if (z == 0) update(x, -y);
else fout << ans(y) - ans(x-1) << '\n';
}
}
void precalc(){
lg2[1] = 0;
for (int i = 2; i <= 15000; i++){
lg2[i] = lg2[i/2] + 1;
}
pw2[0] = 1;
for (int i = 1; i < 20; i++){
pw2[i] = pw2[i-1] * 2;
}
}