100 #B3639. AC鸭点亮灯笼

AC鸭点亮灯笼

题目描述

nn 个灯笼环形摆放。最开始,这些灯笼都是关闭的状态。

操作台上有 nn 个按钮,按下第 xx 个按钮时,会反转灯笼 xx 以及相邻两个灯笼的状态。「反转」是指关闭变成点亮、点亮变成关闭。

举一个例子:如果按下第 55 个按钮,则 445566 号灯笼都会反转;如果按下第 nn 个按钮,则 n1,n,1n-1, n, 1 这三个灯笼状态反转。这是因为灯笼放置为环形,n1n-111 是与 nn 相邻的灯笼。

我们依次按下了一些按钮。你需要编程求出当我们的操作完成后,最终这些灯笼的状态。

输入格式

第一行,两个正整数 n,mn, m,分别表示共有 nn 个灯笼、我们按了 mm 次按钮。

接下来 mm 行,每行一个正整数,表示我们在那一次操作中按下了哪个按钮。

输出格式

仅一行,nn 个整数,依次表示 nn 个灯笼的状态,用空格隔开。以 0 代表灯笼关闭,以 1 代表灯笼点亮。

5 4
1
3
1
2
1 0 0 1 0

样例解释

灯笼序列的状态如下:

0 0 0 0 0  # 初始状态
1 1 0 0 1  # 按下 1 之后的状态
1 0 1 1 1  # 按下 3 之后的状态
0 1 1 1 0  # 按下 1 之后的状态
1 0 0 1 0  # 按下 2 之后的状态

因此你应当输出 1 0 0 1 0

数据范围

对于 100%100\% 的数据,有 n1000n\leq 1000m1000m\leq 1000