Pagini recente » Cod sursa (job #2103962) | Cod sursa (job #1951202) | Cod sursa (job #432703) | Cod sursa (job #301949) | Cod sursa (job #584697)
Cod sursa(job #584697)
#include<fstream>
using namespace std;
int i,j,n,m,q,p,x,c[15001],nr0,s1,s2;
int main()
{
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
c[0]=0;
for(i=1;i<=n;i++)
f>>c[i],c[i]+=c[i-1];
for(i=1;i<=n;i++)
{
nr0=0;
while((i&1<<nr0)==0)
nr0++;
c[i]-=c[i-(1<<nr0)];
}
while(m--)
{
f>>x>>q>>p;
if(x==1)
{
s1=s2=0;
nr0=0;
while(p>0)
{
s1+=c[p];
while((p&1<<nr0)==0)
nr0++;
p-=1<<nr0;
nr0++;
}
nr0=0;
q-=1;
while(q>0)
{
s2+=c[q];
while((q&1<<nr0)==0)
nr0++;
q-=1<<nr0;
nr0++;
}
g<<s1-s2<<"\n";
}
else
if(x==0)
{
nr0=0;
while(q<=n)
{
c[q]+=(-p);
while((q&1<<nr0)==0)
nr0++;
q+=1<<nr0;
nr0++;
}
}
}
return 0;
}