import sys
from math import ceil

def input():
    return sys.stdin.readline().rstrip()


N,AC,AP,BC,BP = map(int,input().split())

if AP*BC < BP*AC:
    AC,AP,BC,BP = BC,BP,AC,AP


answer = float('inf')

for A_COUNT in range(BC):
    B_COUNT = ceil((N-A_COUNT*AC)/BC)
    isover = False
    if B_COUNT<0:
        B_COUNT = 0
        isover = True
    answer = min(answer, A_COUNT*AP + B_COUNT*BP)
    if isover:
        break

print(answer)

 

 

헷갈려서 어려웠던 문제

 

최소공배수를 이용해서 풀어야하는 문제이다.

 

가성비가 좋은 것을 B로 시작하는것을 두고

 

가성비가 안 좋은 것을 A라고 햇을시,

 

AB개만큼 구매를 한다고 했을시에는 무조건 B를 A개 사는것이 이득이다.

 

즉 이말은 A를 B개 미만으로 사는것이 장미를 최소한의 값으로 구매하는것임을 인지하고,

 

A묶음의 장미를 B번 사는 것 미만으로 샀을때

 

장미의 값을 계산을 해주면 되는 문제이다.

 

 

문제를 풀때 a,b가 헷갈려서 너무 어려웠던 문제였다. 조심해서 풀자.

'알고리즘 > 백준' 카테고리의 다른 글

[BOJ/백준] 2695 공  (0) 2022.06.21
[BOJ/백준] 16890 창업  (0) 2022.05.11
[BOJ/백준] 19566 수열의 구간 평균  (0) 2022.01.15
[BOJ/백준] 12912 트리 수정  (0) 2021.12.23
[BOJ/백준] 2240 자두나무  (0) 2021.12.04

+ Recent posts