크기가 X와 Y인 두 통을 K번까지 채우고 비우고 부어 합한 양을 M에 최대한 가깝게 만듭니다.
보통4BFS시뮬레이션면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB농부 존은 우유 정확히 M단위 (1≤M≤200) 주문을 받았고, 지금 바로 채워야 한다. 그런데 착유기가 방금 고장 나서 손에 남은 것은 크기가 정수 X와 Y (1≤X,Y≤100)인 우유통 두 개뿐이다. 두 통은 처음에 모두 비어 있다. 존은 이 두 통으로 다음 연산을 최대 K번 (1≤K≤100) 수행할 수 있다.
두 통에 담긴 우유의 합이 정확히 M이 되지 않을 수도 있다. 존이 두 통에 만들 수 있는 총량 M′에 대해 ∣M−M′∣의 최솟값을 구하라.
첫째 줄에 X, Y, K, M이 공백으로 구분되어 주어진다. 입력은 이 한 줄뿐이다.
존이 만들 수 있는 총량과 M 사이 거리의 최솟값을 출력한다.
X=14, Y=50, K=2, M=32인 경우, 연산을 두 번 해서 두 통에 남길 수 있는 상태는 다음과 같다.
(0, 0) = 0
(14, 0) = 14
(0, 50) = 50
(0, 14) = 14
(14, 36) = 50
(14, 50) = 64
32에 가장 가까운 총량은 14와 50이고, 두 경우 모두 차이가 18이다. (0, 36)을 만들려면 첫 번째 통을 비우는 연산이 한 번 더 필요하다.