Cod sursa(job #866877)

Utilizator MefistossMefistoss Mefistoss Data 28 ianuarie 2013 20:47:45
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#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;
}