CSES 2164 - Josephus Queries
1.0s 512M考慮這樣的遊戲:\(n\) 個小孩(編號 \(1, 2, \ldots, n\))圍成一圈。遊戲進行時,每隔一個小孩就把下一個小孩移出圈子,如此反覆,直到圈子裡沒有小孩為止。小孩會依什麼順序被移出圈子?
你的任務是回答 \(q\) 筆詢問,每筆詢問的形式為:當有 \(n\) 個小孩時,第 \(k\) 個被移出圈子的小孩是誰?
輸入格式
第一行一個整數 \(q\),表示詢問筆數。
接下來 \(q\) 行,每行兩個整數 \(n, k\)。
輸出格式
對每筆詢問輸出一行:第 \(k\) 個被移出圈子的小孩編號。
範例輸入 1
4
7 1
7 3
2 2
1337 1313
範例輸出 1
2
6
1
1107
說明:\(n = 7\) 時,淘汰順序為 \(2, 4, 6, 1, 5, 3, 7\),所以第 \(1\) 個被淘汰的是 \(2\)、第 \(3\) 個被淘汰的是 \(6\)。
限制
- \(1 \le q \le 10^5\)
- \(1 \le k \le n \le 10^9\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入