Python sort / dict / bisect - 90% / 75%
```\nclass Solution:\n\n    def floorSearch(self, array: List[int], target: int) -> int:\n\t\n        idx = bisect_left(array,target)\n        return array[idx-
```\nclass Solution:\n\n    def floorSearch(self, array: List[int], target: int) -> int:\n\t\n        idx = bisect_left(array,target)\n        return array[idx-1]\n    \n    def maximumBeauty(self, items: List[List[int]], queries: List[int]) -> List[int]:\n        \n        items.sort()\n        dic = {}\n        curr_max_beauty = items[0][1]\n        keys = []\n        for price,beauty in items:\n            keys.append(price)\n            curr_max_beauty = max(beauty,curr_max_beauty)\n            dic[price] = curr_max_beauty\n        res = []\n        for q in queries:\n            if q < keys[0]:\n                res.append(0)\n            elif q in dic:\n                res.append(dic[q])\n            else:\n                res.append(dic[self.floorSearch(keys,q)])\n        return res
[]