Pagini recente » Cod sursa (job #643843) | Cod sursa (job #1411748) | Cod sursa (job #1600565) | Cod sursa (job #917152) | Cod sursa (job #1515420)
#include <iostream>
#include <fstream>
#include <cmath>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m;
long long v[15002];
int main(){//cout << pow(2,0);
f >> n >> m;
int ind = 1,cod,val,st,dr;
long long s1,s2;
for(int i = 1;i <=n;i++){
f >> val;
ind=i;
while(ind <= n){
v[ind]+=val;
ind += zeros(ind);
}
}
while(m--){
f >> cod;
if(cod == 0){
f >> ind;
f >> val;
while(ind <= n){
v[ind]-=val;
ind += zeros(ind);
}
}
else {
f >> st;
f >> dr;
s1 = 0;
s2 = 0;
ind = dr;
while(ind > 0){
s1+=v[ind];
ind -= zeros(ind);
}
ind = st - 1;
while(ind > 0){
s2+=v[ind];
ind-=zeros(ind);
}
g << s1-s2 << endl;
}
}
//for(int i = 1;i <= n;i++)g << v[i] << " ";
f.close();
g.close();
return 0;
}