class Tree(object):
def __init__(self,l,r):
self.l=l
self.r=r
self.value=0
mid=(l+r)/2
if(l<r):
self.left=Tree(l,mid);
self.right=Tree(mid+1,r);
def setvalue(self,x,val):
if(self.l==self.r):
self.value=val
return;
mid=(self.l+self.r)/2;
if(x<=mid):
self.left.setvalue(x,val)
else:
self.right.setvalue(x,val)
self.value=self.left.value+self.right.value
def ask(self,l,r):
if(l<=self.l and r>=self.r):
return self.value;
val=0;
mid=(self.l+self.r)/2;
if(l<=mid):
val+=self.left.ask(l,r);
if(r>mid):
val+=self.right.ask(l,r);
return val;
def main():
tree=Tree(1,1024)
for i in range(1,1025):
tree.setvalue(i,i);
print tree.ask(1,1024);
if __name__ == "__main__":
main()