Pagini recente » Cod sursa (job #2936277) | Cod sursa (job #2164362) | Cod sursa (job #3221538) | Cod sursa (job #1976493) | Cod sursa (job #3229154)
#include <iostream>
#include <fstream>
using namespace std;
int aib[200005],n;
int lsb(int a)
{
return (a & -a);
}
void update(int x, int a)
{
for(int i=x;i<=n;i+=lsb(i))
aib[i]=a;
}
int calc(int x)
{
int s=0;
for(int i=x;i>=0;i-=lsb(i))
s+=aib[i];
return s;
}
int main()
{
ifstream cin("aib.in");
ofstream cout("aib.out");
int a,q;
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a;
update(i, a);
}
int op,b;
for(int i=0;i<q;i++)
{
cin>>op>>a>>b;
if(op==0) cout<<calc(b)-calc(a-1);
else if(op==1) update(a, b);
}
return 0;
}