Pagini recente » Cod sursa (job #2737439) | Cod sursa (job #2336782) | Cod sursa (job #2307421) | Cod sursa (job #1685275) | Cod sursa (job #3151436)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,q;
vector<int> v;
vector<int> aib;
void update(int i,int number) {
while(i<=n){
aib[i]-=number;
i +=i & (-i);
}
}
int prefix_query(int i) {
int s = 0;
while(i > 0) {
s+=aib[i];
i-=i & (-i);
}
return s;
}
int range_s(int i,int j) {
return prefix_query(j) - prefix_query(i - 1);
}
int32_t main()
{
fin >> n >> q;
v.resize(n + 1);
aib.resize(n + 1);
int a;
for(int i = 1;i<=n;i++){
fin >> a;
update(i,-a);
}
while(q--) {
int op;
fin >> op;
int index,minuss;
fin >> index >> minuss;
if(op == 0) update(index,minuss);
else {
fout << range_s(index,minuss) << '\n';
}
}
return 0;
}