From 424ecbced37e2e3edba876a2f84c3092d7dbc0c3 Mon Sep 17 00:00:00 2001 From: yenru0 Date: Mon, 24 Mar 2025 03:44:10 +0900 Subject: [PATCH] complete 33094.py --- zeta_python/completed/33094.py | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 zeta_python/completed/33094.py diff --git a/zeta_python/completed/33094.py b/zeta_python/completed/33094.py new file mode 100644 index 0000000..18a5372 --- /dev/null +++ b/zeta_python/completed/33094.py @@ -0,0 +1,58 @@ +import heapq + + +class DietPlan: + def __init__(self, n, m, k, p): + self.n: int = n + self.m: int = m + self.k: int = k + self.p: list[int] = p + + def solve(self) -> int: + now_remain = self.m + + D: list = [] + heapq.heapify(D) + + final_day = 0 + is_consume = False + is_finish = False + for i, p in enumerate(self.p): + is_consume = False + while now_remain - p < 0: + if self.k > 0: + # 쿠키 먹기 + if D: + tmp1 = -heapq.heappop(D) + tmp2 = p + if tmp1 <= tmp2: + p = 0 + is_consume = True + heapq.heappush(D, -tmp1) + else: + now_remain += tmp1 + else: + p = 0 + is_consume = True + self.k -= 1 + + else: + final_day = i + is_finish = True + break + else: + if not is_consume: + now_remain -= p + heapq.heappush(D, -p) + if is_finish: + break + else: + final_day = self.n + + return final_day + + +if __name__ == "__main__": + n, m, k = map(int, input().split()) + p = list(map(int, input().split())) + print(DietPlan(n, m, k, p).solve())