Truy vấn Josephus

Đề bài

Mô tả

Có n đứa trẻ đứng thành vòng tròn, đánh số từ 1 đến n theo chiều kim đồng hồ. Chúng chơi trò loại dần: bắt đầu từ đứa số 1, cứ mỗi đứa thứ hai sẽ bị loại — tức là đứa số 2 bị loại đầu tiên, rồi đứa số 4, rồi 6, và cứ tiếp tục theo vòng tròn cho đến khi tất cả đều bị loại.

Với mỗi truy vấn gồm n và k, hãy cho biết đứa trẻ nào bị loại ở vị trí thứ k.

Dữ liệu vào

  • Dòng đầu: số nguyên q — số truy vấn.
  • q dòng tiếp theo, mỗi dòng gồm hai số nguyên n và k.

Dữ liệu ra

In q số nguyên, mỗi số trên một dòng — đứa trẻ bị loại ở vị trí thứ k trong vòng tròn n người.

Ràng buộc

  • 1≤q≤105
  • 1≤k≤n≤109

Ví dụ

Input Output Giải thích
4
7 1
7 3
2 2
1337 1313
2
6
1
1107
Với n=7: lần lượt bị loại là 2,4,6,1,5,3,7. Vị trí 1 là 2, vị trí 3 là 6. Với n=2: loại 2 trước, rồi 1, nên vị trí 2 là 1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0