Pagini recente » Cod sursa (job #2897747) | Cod sursa (job #2136604) | Cod sursa (job #2525620) | Cod sursa (job #543167) | Cod sursa (job #2098391)
#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;
if(k!=0)
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;
}