Pagini recente » Cod sursa (job #2389420) | Cod sursa (job #567121) | Cod sursa (job #1614416) | Cod sursa (job #2962059) | Cod sursa (job #2642721)
#include <iostream>
#include <fstream>
#define DIM 15005
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int N,M,T[DIM];
void update(int ind, int key){
while(ind <= N){
T[ind] += key;
int c = 0;
while(!(ind & (1 << c) ))
c++;
ind += (1 << c);
c++;
}
}
int query(int poz){
int sum = 0;
while(poz > 0){
sum += T[poz];
int c = 0;
while(!(poz & (1 << c) ))
c++;
poz -= (1 << c);
c++;
}
return sum;
}
int main()
{
f>>N>>M;
int val;
for(int i=1; i<=N; i++){
f>>val;
update(i,val);
}
int op,a,b;
for(int i=1; i<=M; i++){
f>>op>>a>>b;
if(op == 0)
update(a,-b);
else
g<<query(b) - query(a-1)<<"\n";
}
}