QOJ.ac

QOJ

時間限制: 2.0 s 記憶體限制: 256 MB 總分: 100 可 Hack ✓

#17748. 環形棋盤遊戲

统计

在閒逛經過新鮮農產品攤位時,Busy Beaver 被當地乳製品小販攤位上一個奇特的棋盤遊戲吸引了目光。

棋盤是一個圓形,上面有 $N$ 個方格,編號從 $0$ 到 $N - 1$。Busy Beaver 在這個棋盤上玩遊戲,使用一顆 $N$ 面的骰子,面上的數字標記為 $0$ 到 $N - 1$。如果他目前在方格 $s$,移動 $t$ 步,他會直接落在方格 $s + t \pmod N$ 上。

棋盤上還有一個魔法傳送門,如果玩家剛好落在方格 $X$ 上,他們會立即被傳送到方格 $Y$。

Busy Beaver 擲了 $K$ 次骰子,得到序列 $a_1, a_2, \dots, a_K$。從初始方格開始,Busy Beaver 會先移動 $a_1$ 步,接著移動 $a_2$ 步,以此類推,直到完成所有 $K$ 次移動,其中第 $i$ 次移動的步數為 $a_i$。

對於每個可能的初始方格(從 $0$ 到 $N - 1$,但不包含方格 $X$),請計算 Busy Beaver 在完成所有 $K$ 次移動(包含任何傳送)後最終落在哪個方格上。

輸入格式

第一行包含測試案例數量 $T$ ($1 \le T \le 2 \cdot 10^3$)。

每個測試案例的第一行包含四個整數 $N, K, X$ 和 $Y$ ($2 \le N \le 5 \cdot 10^5, 1 \le K \le 5 \cdot 10^5, 0 \le X, Y < N, X \neq Y$)。

每個測試案例的第二行包含 $K$ 個整數 $a_1, a_2, \dots, a_K$ ($0 \le a_i < N$)。

所有測試案例的 $N$ 之總和不超過 $5 \cdot 10^5$。 所有測試案例的 $K$ 之總和不超過 $5 \cdot 10^5$。

輸出格式

對於每個測試案例,輸出 $N - 1$ 個整數,分別代表若從方格 $i$ 開始,Busy Beaver 最後會落在哪個方格上,輸出順序為所有 $0 \le i < N$ 且 $i \neq X$ 的情況。

子任務

此問題包含兩個子任務:

  • (20 分):所有測試案例的 $N$ 之總和不超過 $5 \cdot 10^3$,且所有測試案例的 $K$ 之總和不超過 $5 \cdot 10^3$。
  • (80 分):無額外限制。

範例

輸入 1

3
5 1 0 1
1
5 3 0 1
1 2 3
20 10 3 1
4 15 9 2 6 5 3 5 8 9

輸出 1

2 3 4 1
2 4 4 1
6 7 6 6 11 10 11 14 15 16 17 18 17 18 17 2 1 4 1

說明

在第一個範例測試案例中,棋盤上有 5 個方格,擲骰子一次,結果為 1。傳送門將玩家從方格 0 傳送到方格 1。對於每個起始方格,事件序列如下:

  • 0:傳送門會從此方格傳送;我們不需要輸出任何內容。
  • 1:從方格 1 開始,移動 1 步到方格 2。
  • 2:從方格 2 開始,移動 1 步到方格 3。
  • 3:從方格 3 開始,移動 1 步到方格 4。
  • 4:從方格 4 開始,移動 1 步到方格 0,並傳送到方格 1。

在第二個範例測試案例中,棋盤上有 5 個方格,擲骰子三次,結果分別為 1, 2, 3。傳送門將玩家從方格 0 傳送到方格 1。對於每個起始方格,事件序列如下:

  • 0:傳送門會從此方格傳送;我們不需要輸出任何內容。
  • 1:從方格 1 開始,移動 1 步到方格 2,移動 2 步到方格 4,移動 3 步到方格 2。
  • 2:從方格 2 開始,移動 1 步到方格 3,移動 2 步到方格 0 並傳送到方格 1,移動 3 步到方格 4。
  • 3:從方格 3 開始,移動 1 步到方格 4,移動 2 步到方格 1,移動 3 步到方格 4。
  • 4:從方格 4 開始,移動 1 步到方格 0 並傳送到方格 1,移動 2 步到方格 3,移動 3 步到方格 1。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.