#AT1388. D - Preparing Boxes

D - Preparing Boxes

D - 准备盒子

得分:$400$分

问题描述

有 $N$ 个空盒子按照从左到右的顺序排列。 整数 $i$ 写在第 $i$ 个盒子上$(1 \leq i \leq N)$。

对于这些盒子中的每一个,花花可以选择要么在其中放一个球,要么不放。

我们说一个放球或不放球的选择集是好的,当满足以下条件时:

  • 对于每个整数 $i$,$1$ 到 $N$ 之间(包括 $i$),包含在上面写有 $i$ 的倍数的盒子中的球的总数对 $2$ 取模等于 $a_i$。

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

限制

  • 输入中的所有值都是整数。
  • $1 \leq N \leq 2 \times 10^5$
  • $a_i$ 是 $0$ 或 $1$。

输入

输入以以下格式从标准输入给定:

NN

a1a_1 a2a_2 ...... aNa_N

输出

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

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

``` $M$ $b_1$ $b_2$ $...$ $b_M$ ```

这里,$M$ 表示将包含一个球的盒子的数量,$b_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

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