Pagini recente » Cod sursa (job #2566706) | Cod sursa (job #1064105) | Cod sursa (job #922035) | Cod sursa (job #882706) | Cod sursa (job #2436389)
#include <fstream>
#define zero(x) ((x^(x-1))&x)
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int v[15005],n,m,aib[15005];
void init()
{
for(int i=1;i<=n;i++)
for(int j=i-zero(i)+1;j<=i;++j)
aib[i]+=v[j];
}
void add(int x,int val)
{
for(int i=x;i<=n;i+=zero(i))
aib[i]+=val;
}
int comp(int x)
{
int sol=0;
for(int i=x;i>0;i-=zero(i))
sol+=aib[i];
return sol;
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
f>>v[i];
init();
while(m--)
{
bool op;
int x,y;
f>>op>>x>>y;
if(op)
g<<comp(y)-comp(x-1)<<'\n';
else add(x,-y);
}
return 0;
}