Pagini recente » Cod sursa (job #1024217) | Cod sursa (job #2301470) | Cod sursa (job #1614491) | Cod sursa (job #2623315)
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int aib[15005],n;
void achitare(int val, int zi)
{
for (int i=zi; i<=n; i+=zeros(i))
aib[i] += val;
}
int interogare(int zi)
{
int rez = 0;
for (int i=zi; i>0; i-=zeros(i))
rez += aib[i];
return rez;
}
int main()
{
int m;
int op,x,y;
int zi,val,st,dr;
fin>>n>>m;
for (int i=1; i<=n; i++) {
fin>>x;
achitare(x,i);
}
for (int i=0; i<m; i++) {
fin>>op;
switch(op) {
case 0:
fin>>zi>>val;
achitare(-val,zi);
break;
case 1:
fin>>st>>dr;
val = interogare(dr) - interogare(st-1);
fout<<val<<'\n';
break;
}
}
return 0;
}