만드는 중입니다

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

우유통

면접 대비

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

요약
크기가 X와 Y인 두 통을 K번까지 채우고 비우고 부어 합한 양을 M에 최대한 가깝게 만듭니다.
난이도

보통10점 중 4점

유형
BFS, 시뮬레이션
정답자
아직 제출이 없습니다

문제

농부 존은 우유 정확히 MM단위 (1≤M≤2001 \le M \le 200) 주문을 받았고, 지금 바로 채워야 한다. 그런데 착유기가 방금 고장 나서 손에 남은 것은 크기가 정수 XX와 YY (1≤X,Y≤1001 \le X, Y \le 100)인 우유통 두 개뿐이다. 두 통은 처음에 모두 비어 있다. 존은 이 두 통으로 다음 연산을 최대 KK번 (1≤K≤1001 \le K \le 100) 수행할 수 있다.

  • 통 하나를 끝까지 가득 채운다.
  • 통 하나를 비운다.
  • 한 통의 내용물을 다른 통에 붓는다. 붓는 통이 비거나 받는 통이 가득 차면, 둘 중 먼저 일어나는 시점에 멈춘다.

두 통에 담긴 우유의 합이 정확히 MM이 되지 않을 수도 있다. 존이 두 통에 만들 수 있는 총량 M′M'에 대해 ∣M−M′∣|M - M'|의 최솟값을 구하라.

입력

첫째 줄에 XX, YY, KK, MM이 공백으로 구분되어 주어진다. 입력은 이 한 줄뿐이다.

출력

존이 만들 수 있는 총량과 MM 사이 거리의 최솟값을 출력한다.

힌트

X=14X = 14, Y=50Y = 50, K=2K = 2, M=32M = 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)을 만들려면 첫 번째 통을 비우는 연산이 한 번 더 필요하다.

예제5

  1. 예제 1

    입력
    14 50 2 32
    
    예상 출력
    18
    
  2. 예제 2

    입력
    7 11 2 18
    
    예상 출력
    0
    
  3. 예제 3

    입력
    100 100 1 200
    
    예상 출력
    100
    
  4. 예제 4

    입력
    13 17 6 200
    
    예상 출력
    170
    
  5. 예제 5

    입력
    1 1 1 1
    
    예상 출력
    0