Pagini recente » Cod sursa (job #2359768) | Cod sursa (job #535436) | Cod sursa (job #266058) | Cod sursa (job #538155) | Cod sursa (job #2098378)
#include <iostream>
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m, AIB[15001], x, k, y;
void add(int x, int quantity){
for(int i=x; i<=n; i+=zeros(i))
AIB[i]+=quantity;
}
int compute(int x){
int s=0;
for(int i=x; i>0; i-=zeros(i))
s+=AIB[i];
return s;
}
int main()
{
f>>n>>m;
for(int i=1; i<=n; i++){
f>>k;
add(i, k);
}
for(int i=0; i<m; i++){
f>>k>>x>>y;
if(k)
g<<compute(y) - compute(x-1)<<endl;
else
add(x, -y);
}
return 0;
}