Pagini recente » Cod sursa (job #937338) | Cod sursa (job #2110031) | Cod sursa (job #1195012) | Cod sursa (job #707432) | Cod sursa (job #3137593)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
#define zeros(x) ((x ^ (x - 1)) & x )
#define NMAX 15000
int aib[NMAX+1], n;
void update(int index, int val){
for(int i=index; i<=n; i+= zeros(i))
aib[i] += val;
}
int s(int index){
int s = 0;
for(int i=index; i>=1; i-= zeros(i))
s += aib[i];
return s;
}
int main()
{
int m, k;
fin >> n >> m;
for(int i=1; i<=n; i++){
fin >> k;
update(i, k);
}
int t, index, val;
for(int i=1; i<=m; i++){
fin >> t >> index >> val;
if(!t)
update(index, -val);
else
fout << s(val) - s(index-1) << "\n";
}
return 0;
}