Pagini recente » Cod sursa (job #792448) | Cod sursa (job #1460503) | Cod sursa (job #882428) | Cod sursa (job #792447) | Cod sursa (job #3321249)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
#define MAXN 15000
int aib[MAXN + 1];
int n;
inline int lsb(int x){
return x & (-x);
}
void update(int poz, int x){
int i;
for(i = poz; i <= n; i += lsb(i)){
aib[i] += x;
}
}
int query(int poz){
int i, sum;
sum = 0;
for(i = poz; i > 0; i -= lsb(i)){
sum += aib[i];
}
return sum;
}
int main()
{
int m, nr, i, p, q, op;
fin>>n>>m;
for(i = 1; i <= n; i++){
fin>>nr;
update(i, nr);
}
for(i = 0; i < m; i++){
fin>>op>>p>>q;
if(op == 0){
update(p, -q);
}
else{
fout<<query(q) - query(p - 1)<<'\n';
}
}
fin.close();
fout.close();
return 0;
}