Pagini recente » Cod sursa (job #2330122) | Cod sursa (job #3160321) | Cod sursa (job #1541204) | Cod sursa (job #2194407) | Cod sursa (job #989313)
Cod sursa(job #989313)
#include <iostream>
#include <fstream>
using namespace std;
#define NMAX 15001
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;
}