만드는 중입니다

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

빨간 버튼 파란 버튼

면접 대비

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

요약
두 수 (a,b)에서 시작해 두 수를 함께 1씩 늘리거나 2배로 만드는 연산만으로 (c,d)에 도달하는 최소 횟수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

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

문제

영선이에게는 두 정수 aa와 bb가 있다. 효빈이에게는 빨간 버튼과 파란 버튼이 있다.

빨간 버튼을 누르면 영선이의 두 정수가 각각 1씩 늘어난다. 파란 버튼을 누르면 두 정수에 각각 2를 곱한다.

효빈이는 버튼을 눌러 (a,b)(a, b)를 (c,d)(c, d)로 바꾸려고 한다. 버튼을 누르는 횟수의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 네 정수 aa, bb, cc, dd가 주어진다. (1≤a,b,c,d≤1091 \le a, b, c, d \le 10^9)

출력

첫째 줄에 (a,b)(a, b)를 (c,d)(c, d)로 바꾸는 데 필요한 버튼 누르기 횟수의 최솟값을 출력한다. 바꿀 수 없으면 -1을 출력한다.

예제3

  1. 예제 1

    입력
    100 1000 101 1001
    
    예상 출력
    1
    
  2. 예제 2

    입력
    100 1000 202 2002
    
    예상 출력
    2
    
  3. 예제 3

    입력
    2 2 1 1
    
    예상 출력
    -1