Truy vấn Josephus

Đề bài

Mô tả

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 nk, 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 nk.

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

  • 1q105
  • 1kn109

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í 12, vị trí 36. Với n=2: loại 2 trước, rồi 1, nên vị trí 21.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0