create dev channel

This commit is contained in:
2025-05-07 04:44:30 +09:00
parent 603fca2b20
commit 16a8e59450
426 changed files with 643 additions and 36 deletions

View File

@@ -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())