만드는 중입니다

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

직사각형 접기

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

요약
한 번 접을 때마다 한 변이 max(x, L-x)로 줄어든다. 변 W, H를 w, h로 만드는 최소 접기 횟수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

두 변의 길이가 WW와 HH인 직사각형 종이가 있다. 이 종이를 여러 번 접어서 두 변의 길이가 ww와 hh인 직사각형으로 만들려고 한다.

접는 선은 항상 직사각형의 변과 평행하고, 접은 뒤의 모양도 직사각형이다. 길이가 LL인 변을 한쪽 끝에서 거리 xx인 지점에서 접으면 (0<x<L0 < x < L) 그 변의 길이는 두 조각 중 긴 쪽인 max⁡(x,L−x)\max(x, L-x)가 되고, 다른 변의 길이는 그대로 남는다.

완성한 직사각형은 돌려 놓아도 된다. 두 변의 길이가 ww와 hh이기만 하면 어느 쪽이 가로인지는 상관없다.

필요한 최소 접기 횟수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 처음 직사각형의 두 변의 길이 WW와 HH가 주어진다. 둘째 줄에 목표 직사각형의 두 변의 길이 ww와 hh가 주어진다. (1≤W,H,w,h≤1091 \le W, H, w, h \le 10^9)

출력

처음 직사각형을 목표 직사각형으로 만드는 데 필요한 최소 접기 횟수를 한 줄에 출력한다. 만들 수 없으면 -1을 출력한다.

예제3

  1. 예제 1

    입력
    2 7
    2 2
    
    예상 출력
    2
    
  2. 예제 2

    입력
    10 6
    4 8
    
    예상 출력
    2
    
  3. 예제 3

    입력
    5 5
    1 6
    
    예상 출력
    -1