Design Movie Rental System

from sortedcontainers import SortedList

class MovieRentingSystem: def init(self, n, entries): self.shops = defaultdict(SortedList) #movie -> (price, shop) self.shop_movie = {} #(shop, movie) -> price self.rented = SortedList() # (price, shop, movie) for s, m, p in entries: self.shops[m].add((p, s)) self.shop_movie[s, m] = p

def search(self, movie):
    return [y for _,y in self.shops[movie][:5]]
    
def rent(self, shop, movie):
    price = self.shop_movie[shop, movie]
    self.shops[movie].remove((price, shop))
    self.rented.add((price, shop, movie))

def drop(self, shop, movie):
    price = self.shop_movie[shop, movie]
    self.shops[movie].add((price, shop))
    self.rented.remove((price, shop, movie))
    
def report(self):
    return [[y,z] for _,y,z in self.rented[:5]]