@@ -8,19 +8,36 @@ def __init__(self, start, end):
88 self .len_value = {}
99 self ._init (start , end )
1010
11- def add (self , start , end , weight = 1 ):
11+ def out_of_bounds_check (self , start , end ):
1212 start = max (start , self .start )
1313 end = min (end , self .end )
14+ if start > end :
15+ return None , None
16+ return start , end
17+
18+ def add (self , start , end , weight = 1 ):
19+ start , end = self .out_of_bounds_check (start , end )
20+ if start is None :
21+ return False
1422 self ._add (start , end , weight , self .start , self .end )
1523 return True
1624
1725 def query_max (self , start , end ):
26+ start , end = self .out_of_bounds_check (start , end )
27+ if start is None :
28+ return None
1829 return self ._query_max (start , end , self .start , self .end )
1930
2031 def query_sum (self , start , end ):
32+ start , end = self .out_of_bounds_check (start , end )
33+ if start is None :
34+ return 0
2135 return self ._query_sum (start , end , self .start , self .end )
2236
2337 def query_len (self , start , end ):
38+ start , end = self .out_of_bounds_check (start , end )
39+ if start is None :
40+ return 0
2441 return self ._query_len (start , end , self .start , self .end )
2542
2643 """"""
0 commit comments