Pagini recente » Cod sursa (job #2313094) | Cod sursa (job #2524716) | Cod sursa (job #1003167) | Cod sursa (job #2664884) | Cod sursa (job #989316)
Cod sursa(job #989316)
#include <iostream>
#include <fstream>
using namespace std;
#define NMAX 15010
int tree[NMAX];
int step[NMAX];
void update(int idx, int n, int val){
while (idx <= n){
tree[idx] += val;
idx += step[idx];
}
}
int read(int idx){
int sum = 0;
while (idx > 0){
sum += tree[idx];
idx -= step[idx];
}
return sum;
}
int main(){
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,m,a;
fin >> n >> m;
for (int i=0; i<=n; i++){
tree[i] = 0;
step[i] = i & -i;
}
for (int i=0; i<n; i++){
fin >> a;
update(i+1,n,a);
}
int o,t,v,p,q;
for (int i=0; i<m; i++){
fin >> o;
if (o==0){
fin >> t >> v;
update(t,n,-v);
}
else {
fin >> p >> q;
fout << read(q) - read(p-1) << endl;
}
}
fin.close();
fout.close();
return 0;
}