본문 바로가기
프로그래밍/acmcpc

[5545] 최고의 피자

by blopz 2025. 8. 11.

일단 도우는 무조건 더해야 한다.

 

토핑을 N개를 무조건 더하는게 아니라

N개를 넣을 수도 있고 안 넣을 수 도 있다.

 

학창시절에 담임선생님이 평균을 깎아먹는 놈이라는 말을 할 때가 있다.

평균을 깎아먹는 토핑은 안넣으면 그만이다.

 

계속 비용대비 열랑을 계산해주고

해당 토핑의 비용대비 열량이 낮으면 넣지 않는다.

 

토핑의 가격이 모두 같기 때문에

그냥 열량이 제일 높은것부터 검사하고 비용대비 열량이 현재 피자보다 낮으면 넣지 않고  break 해버린다

import sys

N = int(sys.stdin.readline().strip())
A, B = map(int, sys.stdin.readline().split())
C = int(sys.stdin.readline().strip())
Ds= [int(sys.stdin.readline().strip()) for _ in range(N)]
Ds.sort()

calories = C
num = 0
for n in range(N):
    if Ds[-1]/B < calories/(A+B*(n+1)):
        break
    calories += Ds.pop()
    num = n+1

print(int(calories/(A+B*num)))

'프로그래밍 > acmcpc' 카테고리의 다른 글

[11724] 연결 요소의 개수  (1) 2025.08.26
[2346] 풍선 터뜨리기  (0) 2025.08.26
[1417] 국회의원 선거  (2) 2025.08.11
[2503] 숫자 야구  (0) 2025.08.11
[2798] 블랙잭  (0) 2025.08.11