TopCoder

abcabcabc
有人要寫 p6 嗎 > <

User's AC Ratio

100.0% (4/4)

Submission's AC Ratio

75.0% (6/8)

Tags

Description

莫妮卡熱愛數字,她非常喜歡有特殊性質的數字,例如完全數、費氏數等等。她認為一個正整數越像是費氏數列中的數字就越美麗,因此她定義一個正整數 $n$ 的壞度為最小的 $k$ 滿足存在 $k$ 個出現在費氏數列中的數且它們的總和為 $n$,壞度越低就代表這個數字越美。舉例來說,$5$ 的壞度為 $1$,因為 $5$ 出現在費氏數列中;$26$ 的壞度為 $2$,因為 $26 = 13 + 13$。

現在莫妮卡有兩個正整數 $x, m$,她想要知道 $x + 1, x + 2, \ldots, x + m$ 的壞度分別是多少,但因為她正沉迷於其他計算工作裡無法抽身,請你幫幫她計算出這些壞度。

需要注意的是正整數 $x$ 非常大!為了方便,假設 $x$ 的壞度為 $n$,那莫妮卡會告訴你一個序列 $a_1, a_2, \ldots, a_n$,滿足

$$
x = \sum_{i = 1}^ {n}F_{a_i}
$$

費氏數列 $F_0, F_1, F_2, \ldots$ 為符合以下條件的數列:

$$
F(n) =
\begin{cases}
0 & \text{if } n = 0 \\
1 & \text{if } n = 1 \\
F_{n-1} + F_{n-2} & \text{otherwise.}
\end{cases}
$$

Input Format

輸入第一行有兩個正整數 $n, m$。

第二行有 $n$ 個正整數 $a_1, a_2, \ldots, a_n$。

  • $1 \leq n, m \leq 5 \times 10^ 5$
  • $1 \leq a_i \leq 10^ 6$
  • 令 $x = \sum_{i = 1}^ {n}F_{a_i}$,保證 $x$ 的壞度為 $n$。也就是說,不存在 $n - 1$ 個費氏數加起來為 $x$。

Output Format

輸出一行,該行包含 $m$ 個正整數,其中第 $i$ 個數為 $x + i$ 的壞度。

Sample Input 1

2 5
4 1

Sample Output 1

1 2 2 1 2

Sample Input 2

3 9
7 5 7

Sample Output 2

3 4 1 2 2 2 3 2 3

Sample Input 3

1 10
1000000

Sample Output 3

2 2 2 3 2 3 3 2 3 3

Hints

費氏數列前幾項:$F = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, \ldots]$。

在第一筆範例測資中,$x = F_4 + F_1 = 4$。

在第二筆範例測資中,$x = F_7 + F_5 + F_7 = 31$。

這首歌可能會有用。

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~2 範例測資。 0
2 3~27 $a_i \leq 60$ 30
3 28~52 所有 $a_i$ 皆相異。 50
4 0~72 無特別限制。 20

Testdata and Limits

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