만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

두 대의 공작기계

면접 대비

시간 제한1초메모리 제한512 MB

요약
두 기계의 가동 준비 시간과 분당 생산량이 주어질 때, 기술자 한 명이 한 번에 한 기계만 준비하는 조건에서 k분 동안 만들 수 있는 부품의 최대 개수를 구합니다.
난이도

보통10점 중 4점

유형
그리디, 수학
정답자
아직 제출이 없습니다

문제

공장에 기계가 두 대 있다. 오늘 근무 시간인 kk분 동안 가능한 한 많은 부품을 만들어야 한다.

두 기계는 모두 가동 전 상태다. 첫 번째 기계는 가동하는 데 aa분이 걸리고, 가동이 끝나면 분당 xx개의 부품을 만든다. 두 번째 기계는 가동하는 데 bb분이 걸리고, 가동이 끝나면 분당 yy개의 부품을 만든다.

기계를 가동하려면 기술자가 있어야 하므로 두 기계를 동시에 가동할 수는 없다. 한 기계를 가동하는 동안 다른 기계로 부품을 만드는 것은 가능하고, 두 기계가 동시에 부품을 만드는 것도 허용된다.

kk분 동안 만들 수 있는 부품의 최대 개수를 구하라.

입력

첫 줄에 근무 시간을 분 단위로 나타내는 정수 kk가 하나 주어진다 (0≤k≤1090 \le k \le 10^9).

둘째 줄에 음이 아닌 정수 aa와 xx가 주어진다 (0≤a,x≤1090 \le a, x \le 10^9). aa는 첫 번째 기계를 가동하는 데 걸리는 시간이고, xx는 그 기계가 1분 동안 만드는 부품 수다.

셋째 줄에 음이 아닌 정수 bb와 yy가 주어진다 (0≤b,y≤1090 \le b, y \le 10^9). bb는 두 번째 기계를 가동하는 데 걸리는 시간이고, yy는 그 기계가 1분 동안 만드는 부품 수다.

출력

근무 시간 동안 만들 수 있는 부품의 최대 개수를 정수 하나로 출력한다.

답은 32비트 정수 범위를 넘을 수 있으므로 C++에서는 long long, Pascal에서는 int64와 같은 64비트 정수형을 사용하는 것이 좋다.

힌트

이 예제에서는 두 번째 기계를 먼저 가동한 뒤 남은 15분 동안 45개의 부품을 만드는 것이 유리하다. 그다음 첫 번째 기계를 가동하고 남은 5분 동안 20개를 더 만든다.

첫 번째 기계를 먼저 가동하고 남은 10분 동안 40개를 만들면, 두 번째 기계를 가동한 뒤에는 15개만 만들 수 있다. 합계는 55개로 65개보다 적다.

예제1

  1. 예제 1

    입력
    20
    10 4
    5 3
    
    예상 출력
    65