Loading Now

Johnny and Ancient Computer

Johnny gần đây đã tìm thấy một máy tính cổ xưa, bị hỏng. Máy chỉ có một thanh ghi, cho phép một người đặt vào đó một biến. Sau đó, trong một thao tác, bạn có thể dịch chuyển các bit của nó sang trái hoặc phải bằng nhiều nhất ba vị trí. Vì vậy, trên thực tế, trong một thao tác, bạn có thể nhân hoặc chia số của mình cho 2, 4 hoặc 8 và phép chia chỉ được phép nếu số đó chia hết cho số chia đã chọn.

Chính thức, nếu thanh ghi chứa một số nguyên dương x, trong một thao tác, nó có thể được thay thế bằng một trong những điều sau đây:

  • x * 2
  • x * 4
  • x * 8
  • x / 2, nếu x chia hết cho 2
  • x / 4, nếu x chia hết cho 4
  • x / 8, nếu x chia hết cho 8

Bây giờ Johnny tự hỏi có bao nhiêu thao tác anh ta cần phải thực hiện nếu anh ta có a và muốn nhận b ở cuối. Nếu Johnny không thể nhận được b ở cuối, sau đó trả về -1.

Ví dụ:

  • Với a = 6 và b = 12 thì đầu ra Divide(a,b) = 1
  • Với a = 7 và b = 15 thì đầu ra Divide(a,b) = -1

Input/Output:

  • [Thời gian chạy]: 0.5 giây với C++, 3 giây với Java và C#, 4 giây với Python, GO và Js.
  • [Đầu vào] Long a, b
    1 ≤ a,b ≤ 10^18
  • [Đầu ra] Integer

Post Comment

Contact