아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

점프 숨바꼭질

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

요약
0에서 시작해 매 점프마다 거리가 두 배로 늘어난다. 합이 정확히 K가 되는 최소 점프 횟수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
수학, 그리디, 비트 연산, 완전 탐색
정답자
아직 제출이 없습니다

문제

현욱은 형과 숨바꼭질을 하고 있다. 현욱은 현재 00번 지점에 있고, 형은 KK(−1012≤K≤1012-10^{12} \le K \le 10^{12})번 지점에 있다.

현욱은 점프를 좋아해서 항상 점프를 하면서 움직인다. 현욱의 맨 처음 점프는 11만큼의 거리를 움직인다. 그리고 현욱은 점프를 하면 할수록 신이 나서, 점프할 때마다 이전에 점프할 때 뛴 거리의 두 배만큼의 거리를 움직인다.

현욱의 형이 있는 위치가 주어졌을 때, 현욱이 형을 찾기 위해 필요한 최소 점프 횟수를 구해보자.

입력

첫째 줄에 현욱의 형이 있는 위치 KK가 주어진다(−1012≤K≤1012-10^{12} \le K \le 10^{12}).

출력

첫째 줄에 현욱이 형이 있는 위치에 도달하기 위해 필요한 최소 점프 횟수를 출력한다. 만약 도달할 수 있는 방법이 없다면 −1-1을 출력한다.

예제3

  1. 예제 1

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

    입력
    -7
    
    예상 출력
    3
    
  3. 예제 3

    입력
    2
    
    예상 출력
    -1