Trò chơi những con số

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.5s
Memory limit: 256M

Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Hai bạn A và B đang chơi trò chơi của những con số. Trò chơi bắt đầu với một con số ~S~. Mỗi vòng, A sẽ thực hiện lượt chơi trước B. Mỗi lượt chơi, người chơi có thể thay đổi con số hiện tại, gọi là ~X~, bằng một trong hai hành động sau:

  • Nếu ~X~ nhỏ hơn ~9999~ thì tăng ~X~ lên một đơn vị. Ví dụ: ~X = 10~, nếu người chơi chọn hành động này thì ~X = 11~.
  • Thay đổi thứ tự các chữ số của ~X~ để có được một con số khác ~X~. Ví dụ: ~X = 102~, nếu người chơi chọn hành động này thì ~X~ có thể trở thành: ~120, 12, 21, 201, 210~ (những số ~0~ đứng đầu sẽ bị loại bỏ).

Nếu đến lượt mình, người chơi không thể thực hiện hành động nào thuộc hai hành động trên thì người chơi sẽ thua.

Người thay đổi con số hiện tại thành ~F~ sẽ là người chiến thắng trò chơi.

Vì A muốn chiến thắng nên chiến thuật chơi của bạn là, nếu có thể thay đổi con số hiện tại thành ~F~ thì bạn sẽ thực hiện hành động đó, ngược lại bạn có thể chọn bất kỳ hành động nào còn lại.

Vì B là bạn thân lâu năm của A nên B muốn nhường A chiến thắng trò chơi do đó chiến thuật chơi của B là, nếu có thể B sẽ không thay đổi con số hiện tại thành ~F~ thay vào đó bạn sẽ lựa chọn những hành động khác.

Nếu A có thể chiến thắng trò chơi thì bạn có thể thắng trong ít nhất bao nhiêu vòng?

Input Format

  • Dòng đầu tiên là một số nguyên ~T\ (1 \leq T \leq 30)~ thể hiện số lượng testcase.
  • Ứng với mỗi testcase là hai số nguyên khác nhau ~S, F\ (0 \leq S, F \leq 9999)~.

Output Format

  • Gồm ~T~ dòng, mỗi dòng là số vòng ít nhất để A chiến thắng trò chơi nếu A có thể thắng, ngược lại in ra ~-1~.

Sample Input

2
9 4
0 2

Sample Output

3
-1

Giải thích ví dụ

Testcase 1

Vòng 1:

  • A chỉ có thể thực hiện hành động thay đổi ~9~ thành ~10~.
  • Với ~X=10~, B có 2 thể thực hiện hành động 1 là thay đổi ~X = 10 + 1 = 11~ hoặc thực hiện hành động 2 là thay đổi ~X~ thành ~01 = 1~. B lựa chọn hành động thay đổi ~X~ thành ~1~.

Vòng 2:

  • A chỉ có thể thực hiện hành động thay đổi ~1~ thành ~2~.
  • B chỉ có thể thực hiện hành động thay đổi ~2~ thành ~3~.

Vòng 3:

  • A thực hiện hành động thay đổi ~3~ thành ~4~ và chiến thắng trò chơi.

A đã chiến thắng trò chơi qua 3 vòng và đây cũng là số vòng ít nhất.

Testcase 2

Vòng 1:

  • A chỉ có thể thực hiện hành động thay đổi ~0~ thành ~1~.
  • B chỉ có thể thực hiện hành động thay đổi ~1~ thành ~2~ và chiến thắng trò chơi.

Trong trường hợp này A không thể chiến thắng.


Comments

Please read the guidelines before commenting.


There are no comments at the moment.