TopCoder

FHVirus
想像不出自己 AC 的題目是實作不出來的!

User's AC Ratio

97.0% (32/33)

Submission's AC Ratio

54.6% (71/130)

Tags

Description

為了慶祝 iPhone Max 手機的上市,蓮霧公司在他們的最大直營店擺設了 n 台最新的 iPhone Max 手機環繞整家直營店,希望在首賣日帶動買氣。殊不知,在首賣日前一天晚上,有 m 個競爭對手的死忠支持者因為不滿銷售量被 iPhone 系列的推出大受打擊,趁夜闖入蓮霧直營店,打算惡搞這些已經開機好正在展示動畫的 iPhone 。

但闖入後才發現,該店展示的 iPhone 數量實在太多,他們沒有時間去惡搞所有的iPhone,他們決定每人只挑部分手機下手:第 i 個人把第 ki, 2ki, 3ki, ... 隻手機倒置;如果手機是開機狀態就把它關機、如果手機是正放就把它倒放,反之亦然。

假設原本所有的 iPhone 全部都是正放且開機,請寫一隻程式去計算這些闖入者在結束他們的惡作劇後,究竟有幾台手機看起來是被惡搞過(過程不重要,只須以最後的狀態判斷即可)。

Input Format

第一行有兩個整數,n 和 m,並以空白分隔。n 代表 iPhone 的總數,而 m 代表有幾個入侵者。接下來是 m 行,每行一個數字,依序代表每個人惡作劇手機的間隔,即 k1, k2, k3, ... , km。

限制:

保證有99%的測試資料滿足:
1 ≤ n ≤ 200
1 ≤ m ≤ 200
1 ≤ ki ≤ n

保證所有的測試資料滿足:
1 ≤ n ≤ 300000
1 ≤ m ≤ 2000000
1 ≤ ki ≤ n

Output Format

第一行輸出一整數,代表最後看起來被惡搞過的手機數量x。接下來輸出x行,每行按照由小到大的順序輸出被惡搞的手機編號。

Sample Input 1

7 2
2
3

Sample Output 1

3
2
3
4

Sample Input 2

5 3
1
2
3

Sample Output 2

2
1
5

Hints

Problem Source

Subtasks

No. Testdata Range Score
1 0~4 99
2 5~9 1

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 262144 1
1 1000 65536 262144 1
2 1000 65536 262144 1
3 1000 65536 262144 1
4 1000 65536 262144 1
5 1000 65536 262144 2
6 1000 65536 262144 2
7 1000 65536 262144 2
8 1000 65536 262144 2
9 1000 65536 262144 2