#AT1152. 准备盒子

准备盒子

题目描述

NN 个空盒子按照从左到右的顺序排列。 整数ii写在第ii个盒子上(1iN)(1 ≤i≤ N)

对于这些盒子中的每一个,花花可以选择要么在其中放一个球,要么不放。我们说一个放球或不放球的选择集是好的,当满足以下条件时:

对于每个整数ii,11NN 之间(包括 ii),包含在上面写有ii的倍数的盒子中的球的总数对 2 取模等于 aia_i

是否存在一个好的选择集?如果存在,找出一个好的选择集。

输入

第一行一个整数NN

第二行一共NN个整数,分别表示a1,a2...aNa_1,a_2...a_N

输出

如果不存在好的选择集,则打印-1。

如果存在好的选择集,则以以下格式打印一个这样的选择集:

M b1 b2 ... bM

这里,MM 表示将包含一个球的盒子的数量,b1,b2...bMb_1,b_2...b_M是这些盒子上写的整数,可以是任意顺序。

3
1 0 0
1
1

样例解释

考虑只在写有 1 的盒子中放一个球。

  • 有三个盒子上写有 1 的倍数:写有 1、2、和3的盒子。这些盒子中包含的球的总数为 1.
  • 只有一个盒子上写有 2的倍数:写有2的盒子。这些盒子中包含的球的总数为 0。
  • 只有一个盒子上写有 3 的倍数:写有3的盒子。这些盒子中包含的球的总数为 0. 因此,满足条件,所以这个选择集是好的。
5
0 0 0 0 0
0

样例解释

在盒子里什么也不放也是一个好的选择集。

提示

1N2×105 1 \leq N \leq 2 \times 10^5

ai a_i 是0或1