Pagini recente » Cod sursa (job #1749655) | Cod sursa (job #415426) | Cod sursa (job #223859) | Cod sursa (job #1736128) | Cod sursa (job #3152574)
#include <fstream>
using namespace std;
int aib[150005],n;
void update( int i , int a)
{
while(i<=n)
{
aib[i]+=a;
i+=(i&-i);
}
}
int prefix(int i)
{
int sum=0;
while(i>0)
{
sum+=aib[i];
i-=(i&-i);
}
return sum;
}
int range_sum(int l, int r)
{
return prefix(r)-prefix(l-1);
}
int main()
{
ifstream cin ("datorii.in");
ofstream cout ("datorii.out");
int q,a;
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a;
update(i,a);
}
int tip, b;
for(int i=1;i<=q;i++)
{
cin>>tip>>a>>b;
if(tip==0)
{
update(a,-b);
continue;
}
cout<<range_sum(a,b)<<'\n';
}
return 0;
}