문제
https://www.acmicpc.net/problem/1421
접근
- 나무의 개수가 50보다 작고 자를 수 있는 나무 길이가 10000보다 작으므로, 자를 수 있는 모든 길이에 대해 벌 수 있는 돈을 계산해서 최댓값을 구했다.
- 주의할 점은 가지고 있는 나무를 전부 잘라서 팔아야하는 것은 아니므로, 해당 나무를 팔았을 때 얻는 비용과 자를 때 드는 비용의 차가 양수일때만 나무를 판다.
풀이
n, c, w = map(int, input().split())
a = [int(input()) for _ in range(n)]
ans = 0
for i in range(1, 10001):
tmp = 0
for x in a:
cost = 0
m, d = divmod(x, i)
if d == 0:
cost += (m - 1) * c
else:
cost += m * c
if m * w * i - cost > 0:
tmp += m * w * i - cost
ans = max(ans, tmp)
print(ans)
'Python > Coding Test' 카테고리의 다른 글
10703 유성 (0) | 2022.02.24 |
---|---|
13168 내일로 여행 (0) | 2022.02.23 |
2563 전깃줄 (0) | 2022.02.22 |
15728 에리 - 카드 (0) | 2022.02.22 |
16933 벽 부수고 이동하기 3 (0) | 2022.02.22 |