Pagini recente » Cod sursa (job #2250605) | Cod sursa (job #565676) | Cod sursa (job #2986686) | Cod sursa (job #3195081) | Cod sursa (job #2939264)
#include <fstream>
#include <iostream>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
const int NMAX = 15e3;
int aib[NMAX+1];
int n;
void update(int x, int val){
for(int i=x; i<=n; i+=zeros(i))
aib[i] += val;
}
int sum(int x){
int s=0;
for(int i=x; i>0; i-=zeros(i))
s += aib[i];
return s;
}
int main()
{
int q;
f>>n>>q;
for(int j=1; j<=n; j++){
int k;
f>>k;
update(j, k);
}
for(int j=1; j<=q; j++){
int t, a, b;
f>>t>>a>>b;
if(t == 1)
g<<sum(b) - sum(a-1)<<"\n";
else update(a, -b);
}
return 0;
}