TopCoder

User's AC Ratio

100.0% (2/2)

Submission's AC Ratio

100.0% (2/2)

Tags

Description

在處理字串時,素來分為「KMP 派」與「Z value 派」。KMP 派在看到字串題時打死不用 Z value、Z value 派在看到字串題時打死不用 KMP。

這時候生為一個出題者,在出題目時當然要想方設法出一題兩全其美的好題目,讓這兩派的人都寫不出來:

有ㄧ個祕密字串 $s$ ,現在已經知道了其 KMP 的值,請計算出 $s$ 的 z value。

注意由於 KMP 與 Z value 在民間有眾多版本且各自有微小差距,在本題請一概以講義定義為準。

舉例來說當祕密字串為 $s = \texttt{"ababa"}$ ,則 KMP$(s) = -1, -1, 0, 1, 2$、 Z value$(s) = 5, 0, 3, 0, 1$。

Input Format

測試資料第一行包含一個正整數 $T$ ,代表一共有 $T$ 筆測資。

接下來為 $T$ 筆測資,每筆測資第一行有一個正整數 $N$,代表字串 $s$ 的長度。

下一行一共包含一個 $N$ 個整數 $a_0, a_1, \cdots, a_{N - 1}$,分別代表字串 $s$ 算出的 KMP 值。

  • $1 \le \sum N \le 2 \times 10^ 6$
  • $-1 \le a_i < N$
  • 保證 $s$ 真的存在。

Output Format

對於每一筆測資,請一共輸出 $N$ 個數字,代表字串 $s$ 的 Z value。

Sample Input 1

1
5
-1 -1 0 1 2

Sample Output 1

5 0 3 0 1

Hints

Problem Source

IOICamp 2021 Day3 pG

Subtasks

No. Testdata Range Constraints Score
1 0 範例測資 0
2 0~56 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 262144 65536 1 2
1 1000 262144 65536 2
2 1000 262144 65536 2
3 1000 262144 65536 2
4 1000 262144 65536 2
5 1000 262144 65536 2
6 1000 262144 65536 2
7 1000 262144 65536 2
8 1000 262144 65536 2
9 1000 262144 65536 2
10 1000 262144 65536 2
11 1000 262144 65536 2
12 1000 262144 65536 2
13 1000 262144 65536 2
14 1000 262144 65536 2
15 1000 262144 65536 2
16 1000 262144 65536 2
17 1000 262144 65536 2
18 1000 262144 65536 2
19 1000 262144 65536 2
20 1000 262144 65536 2
21 1000 262144 65536 2
22 1000 262144 65536 2
23 1000 262144 65536 2
24 1000 262144 65536 2
25 1000 262144 65536 2
26 1000 262144 65536 2
27 1000 262144 65536 2
28 1000 262144 65536 2
29 1000 262144 65536 2
30 1000 262144 65536 2
31 1000 262144 65536 2
32 1000 262144 65536 2
33 1000 262144 65536 2
34 1000 262144 65536 2
35 1000 262144 65536 2
36 1000 262144 65536 2
37 1000 262144 65536 2
38 1000 262144 65536 2
39 1000 262144 65536 2
40 1000 262144 65536 2
41 1000 262144 65536 2
42 1000 262144 65536 2
43 1000 262144 65536 2
44 1000 262144 65536 2
45 1000 262144 65536 2
46 1000 262144 65536 2
47 1000 262144 65536 2
48 1000 262144 65536 2
49 1000 262144 65536 2
50 1000 262144 65536 2
51 1000 262144 65536 2
52 1000 262144 65536 2
53 1000 262144 65536 2
54 1000 262144 65536 2
55 1000 262144 65536 2
56 1000 262144 65536 2