당신의 방식대로 만든 에스프레소
시간 제한1초메모리 제한1024 MB
고객이 받아들이는 커피와 우유의 비율 범위가 주어질 때, 반씩 섞는 방식으로 그 범위의 비율을 만들면서 버리는 재료의 양을 최소로 구하는 문제입니다.
문제
새 일자리를 얻었습니다. 솔직히 말해 커피는 제 취향이 아닙니다. 많은 손님이 커피와 우유의 특정 비율을 주문합니다. 임의의 양을 정확히 잴 수는 없습니다. 같은 크기의 컵이 두 개 있고, 순수한 커피를 내놓는 기계와 순수한 우유를 내놓는 기계가 있습니다.
빈 컵 하나를 커피로 가득 채우고, 두 번째 빈 컵을 우유로 가득 채울 수 있습니다. 가득 찬 두 컵을 섞어 각 컵의 절반씩 사용하면, 커피와 우유가 반반인 결과가 나옵니다. 이렇게 반반 섞인 컵을 얻지만, 재료 한 컵 분량(커피의 나머지 절반과 우유의 나머지 절반)을 버리게 됩니다.
반반 섞인 컵이 생겼으니, 두 번째 컵을 커피로 채우거나 우유로 채울 수 있습니다. 그다음 두 컵을 섞으면 다른 비율의 컵이 만들어집니다. 두 컵을 섞을 때는 각 컵의 정확히 절반을 쓰고, 나머지 절반은 버립니다.
이 과정을 반복하면 일부 비율은 만들 수 있지만, 어떤 비율은 만들 수 없습니다.
고객이 허용하는 커피와 우유의 비율 범위가 주어지면, 주문을 최적으로 준비했을 때 버리는 재료의 양이 가장 적은 경우를 구하세요.
입력
입력은 한 줄이며, 정수 , , , ()가 주어집니다. 고객은 단위의 우유에 단위의 커피를 섞은 비율부터 단위의 우유에 단위의 커피를 섞은 비율까지 받아들입니다. 두 비율은 서로 같지 않으며, , , 가 보장됩니다.
출력
주문을 최적으로 준비했을 때 버리는 재료 컵 수의 최솟값을 정수 하나로 출력합니다.