최대 힙을 통해 우선순위 큐를 구현해 해결
1, 2, 5
의 경우, 5, 2
cnt
에 더해주고, 해당 차이 값을 다시 힙에 pushcnt
에 +from sys import stdin
import heapq
n = int(stdin.readline())
snows = list(map(int, stdin.readline().split()))
cnt = 0
heap = []
for snow in snows:
if snow > 1440:
print(-1)
exit(0)
else:
heapq.heappush(heap, -snow)
while len(heap) > 1:
max_val = -heapq.heappop(heap)
sec_val = -heapq.heappop(heap) if heap else 0
heapq.heappush(heap, -(max_val - sec_val))
cnt += sec_val
cnt += -heapq.heappop(heap) if heap else 0
print(-1 if cnt > 1440 else cnt)