[Python_Training] s và t

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C#, C++, Clang, Clang++, Cobol, D, Groovy, Haskell, Java, JS, Kotlin, Lua, Node JS, ObjectiveC, OCaml, Output, PHP, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 400 Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Có một tấm thẻ trên bàn, và bau đầu có một số \(s\) được viết trên nó, ở mỗi bước bạn có thể thực hiện \(1\) trong \(2\) phép toán sau:

  • Giả sử số ghi trên tấm thẻ là \(x\), thì thay nó bằng \(2 * x+1\)

  • Giả sử số ghi trên tấm thẻ là \(x\), thì thay nó bằng \(3 * x+1\)

Hỏi chúng ta cần thực hiện ít nhất bao nhiêu phép toán trên để thu được được số \(t\). Nếu không thể biến đổi \(s\) thành \(t\) in ra \(-1\).

Input

  • Dòng thứ nhất chứa số \(T(1\le T\le 30\)) - Thể hiện số testcase của bài toán

  • T dòng tiếp theo, mỗi dòng chứa hai số nguyên \(s,t(0\le s,t\le 10^6)\)

Output

  • Ứng với mỗi testcase, in ra đáp án thỏa mãn yêu cầu bài toán

Example

Test 1

Input
2
1 3
3 15
Output
1
2

Bình luận


  • 0
    cuberlong    2:52 p.m. 8 Tháng 12, 2020 đã chỉnh sửa

    cái input hơi ác, có mấy cái xuống dòng ko đúng quy luật (test 1) :v


    • 0
      jumptozero    8:55 a.m. 9 Tháng 12, 2020

      Là sao bạn ? Bạn có thể nói rõ để mình edit được không ? Mình thấy cái test 1 vẫn bình thường mà !


      • 0
        cuberlong    2:31 p.m. 9 Tháng 12, 2020 đã chỉnh sửa

        À dòng thứ 4 của test 1 đó anh, em thấy đáng lẽ phải có 2 số s,t mà số t nó bị xuống dòng. Không biết có phải do cách hiển thị ko? Cái ni mà mấy bạn dùng input().split() trong python 3 thì nó ko nhập giá trị đc


        • -3
          NgTriNhan    9:19 a.m. 12 Tháng 12, 2020

          Trời lạnh quá trời lạnh quá


          • -3
            NgTriNhan    9:06 a.m. 12 Tháng 12, 2020 đã chỉnh sửa

            Đừng bỏ em một mình

        2 bình luận nữa