우유통
면접 대비시간 제한2초메모리 제한512 MB
크기가 X와 Y인 두 통을 K번까지 채우고 비우고 부어 합한 양을 M에 최대한 가깝게 만듭니다.
문제
농부 존은 우유 정확히 단위 () 주문을 받았고, 지금 바로 채워야 한다. 그런데 착유기가 방금 고장 나서 손에 남은 것은 크기가 정수 와 ()인 우유통 두 개뿐이다. 두 통은 처음에 모두 비어 있다. 존은 이 두 통으로 다음 연산을 최대 번 () 수행할 수 있다.
- 통 하나를 끝까지 가득 채운다.
- 통 하나를 비운다.
- 한 통의 내용물을 다른 통에 붓는다. 붓는 통이 비거나 받는 통이 가득 차면, 둘 중 먼저 일어나는 시점에 멈춘다.
두 통에 담긴 우유의 합이 정확히 이 되지 않을 수도 있다. 존이 두 통에 만들 수 있는 총량 에 대해 의 최솟값을 구하라.
입력
첫째 줄에 , , , 이 공백으로 구분되어 주어진다. 입력은 이 한 줄뿐이다.
출력
존이 만들 수 있는 총량과 사이 거리의 최솟값을 출력한다.
힌트
, , , 인 경우, 연산을 두 번 해서 두 통에 남길 수 있는 상태는 다음과 같다.
(0, 0) = 0
(14, 0) = 14
(0, 50) = 50
(0, 14) = 14
(14, 36) = 50
(14, 50) = 64
32에 가장 가까운 총량은 14와 50이고, 두 경우 모두 차이가 18이다. (0, 36)을 만들려면 첫 번째 통을 비우는 연산이 한 번 더 필요하다.