python
2026-05-16 21:23:00
发布于:江苏
0阅读
0回复
0点赞
import heapq
n, m = map(int, input().split())
w = list(map(int, input().split()))
# 小根堆,维护每个水龙头的结束时间
heap = []
# 前 m 个同学直接占用所有水龙头
for i in range(min(m, n)):
heapq.heappush(heap, w[i])
# 后续同学:取出最早结束的水龙头,加上该同学的接水时间
for i in range(m, n):
earliest = heapq.heappop(heap)
heapq.heappush(heap, earliest + w[i])
# 总时间 = 水龙头中的最大结束时间
print(max(heap) if heap else 0)
这里空空如也

有帮助,赞一个