Pagini recente » Cod sursa (job #375441) | Cod sursa (job #488858) | Cod sursa (job #1753079) | Cod sursa (job #526835) | Cod sursa (job #989306)
Cod sursa(job #989306)
#include <iostream>
#include <fstream>
using namespace std;
#define NMAX 15001
int tree[NMAX];
void update(int idx, int n, int val){
while (idx <= n){
tree[idx] += val;
idx += (idx & -idx);
}
}
int read(int idx){
int sum = 0;
while (idx > 0){
sum += tree[idx];
idx -= (idx & -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;
for (int i=0; i<n; i++){
fin >> a;
update(i+1,n,a);
}
int o,t,v,p,q,s;
for (int i=0; i<m; i++){
fin >> o;
if (o==0){
fin >> t >> v;
update(t,n,-v);
}
else {
fin >> p >> q;
s = read(q) - read(p-1);
fout << s << endl;
}
}
fin.close();
fout.close();
return 0;
}