Pagini recente » Cod sursa (job #339261) | Cod sursa (job #2957739) | Cod sursa (job #1213801) | Cod sursa (job #492894) | Cod sursa (job #1505393)
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int m,n,poz,sum,v[15001],val,t,c,a,b;
int main()
{
f>>n>>m;
for(int i=1;i<=n;++i)
{
f>>val;
poz=i;
c=0;
while(poz<=n)
{
v[poz]+=val;
while(!(poz&(1<<c))) ++c;
poz+=(1<<c);
c++;
}
}
for(;m;--m)
{
f>>t;
if(!t)
{
f>>poz>>val;
c=0;
while(poz<=n)
{
v[poz]-=val;
while(!(poz&(1<<c))) ++c;
poz+=(1<<c);
c++;
}
}
else
{
f>>a>>b;
poz=b;
c=0;
sum=0;
while(poz>0)
{
sum+=v[poz];
while(!(poz&(1<<c))) ++c;
poz-=(1<<c);
c++;
}
poz=a-1;
c=0;
while(poz>0)
{
sum-=v[poz];
while(!(poz&(1<<c))) ++c;
poz-=(1<<c);
c++;
}
g<<sum<<'\n';
}
}
return 0;
}