Pagini recente » Cod sursa (job #2517706) | Cod sursa (job #219580) | Cod sursa (job #370762) | Cod sursa (job #1413849) | Cod sursa (job #866877)
Cod sursa(job #866877)
#include<fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int a[15001],m,n,x,i,y,t;
int poz(int pz)
{
int pzf=0;
for(;pz%2==0;pz=pz>>1) pzf++;
return pzf;
}
void adn() { int p=i; for(;p<=n;p+=(1<<poz(p))) a[p]+=x; }
void scd() { int p=y; for(;p<=n;p+=(1<<poz(p))) a[p]-=x; }
int subs(int st) {int s=0,p=st; for(;p>0;p-=(1<<poz(p))) s+=a[p]; return s;}
int main()
{
f>>n>>m;
for(i=1;i<=n;++i) {f>>x; adn();}
for(i=1;i<=m;++i)
{
f>>t>>y>>x;
if(t==0)
scd();
else
g<<(subs(x)-subs(y-1))<<'\n';
}
return 0;
}