File tree Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Original file line number Diff line number Diff line change @@ -60,16 +60,17 @@ def find_kth(self, k):
60
60
return idx + 1 , k
61
61
62
62
63
- block_size = 700
64
-
65
-
66
63
class SortedList :
67
- def __init__ (self ):
64
+ block_size = 700
65
+
66
+ def __init__ (self , iterable = ()):
68
67
self .macro = []
69
68
self .micros = [[]]
70
69
self .micro_size = [0 ]
71
70
self .fenwick = FenwickTree ([0 ])
72
71
self .size = 0
72
+ for item in iterable :
73
+ self .insert (item )
73
74
74
75
def insert (self , x ):
75
76
i = lower_bound (self .macro , x )
@@ -78,13 +79,13 @@ def insert(self, x):
78
79
self .size += 1
79
80
self .micro_size [i ] += 1
80
81
self .fenwick .update (i , 1 )
81
- if len (self .micros [i ]) >= block_size :
82
- self .micros [i : i + 1 ] = self .micros [i ][: block_size >> 1 ], self .micros [i ][block_size >> 1 :]
83
- self .micro_size [i : i + 1 ] = block_size >> 1 , block_size >> 1
82
+ if len (self .micros [i ]) >= self . block_size :
83
+ self .micros [i : i + 1 ] = self .micros [i ][:self . block_size >> 1 ], self .micros [i ][self . block_size >> 1 :]
84
+ self .micro_size [i : i + 1 ] = self . block_size >> 1 , self . block_size >> 1
84
85
self .fenwick = FenwickTree (self .micro_size )
85
86
self .macro .insert (i , self .micros [i + 1 ][0 ])
86
87
87
- def pop (self , k = 0 ):
88
+ def pop (self , k = - 1 ):
88
89
i , j = self ._find_kth (k )
89
90
self .size -= 1
90
91
self .micro_size [i ] -= 1
You can’t perform that action at this time.
0 commit comments