【MX-X2-T3】「Cfz Round 4」Ninelie
题目背景
![](https://cdn.luogu.com.cn/upload/image_hosting/3g0aruaq.png)
沿着单侧无尽响彻的旋律 流经眼前的街道 伴随着落幕的爱 渐行渐远
那无法传达的理想构图日渐扭曲沉寂的抵抗在此刻觉醒 冲动也在此刻姗姗来迟
支离破碎的哭喊和美梦 理想只剩下装饰的门面
哪怕城市乐于被喧嚣嘈杂所淹没
我也会继续高歌舍弃那掌控我的一切
所以只愿那静谧 再度响彻
> 无需畏惧 黎明已然降临
题目描述
给定一个长为 $n$ 的 $01$ 序列 $a_1, \ldots, a_n$ 以及一个正整数 $r$。
你可以对序列 $a$ 进行操作。每次操作需选定一个下标 $p$,满足 $p$ 为 $1$ 或 $n$ 或 $a_{p-1}\neq a_{p+1}$,然后将 $a_p$ 翻转(即将 $0$ 变为 $1$,将 $1$ 变为 $0$)。
请你在 $r$ 次操作内将序列 $a$ 变成全 $0$ 或全 $1$。**你不需要最小化操作次数**。如果无法完成,你需要报告无解。
**数据保证 $\bm{r = 2 \times 10^6}$ 或 $\bm{10^6}$,具体细节请参见【数据范围】一节。**
输入输出格式
输入格式
第一行两个正整数 $n,r$。
第二行 $n$ 个整数 $a_1, \ldots, a_n$。
输出格式
若无法在 $r$ 次操作内将序列 $a$ 变成全 $0$ 或全 $1$,则输出一行一个整数 $-1$。
若存在一种构造方案,则输出两行:
- 第一行包含一个非负整数 $m$,表示你的操作次数;你需要保证 $m\le r$,**你不需要最小化 $\bm m$**;
- 第二行包含 $m$ 个正整数,依次表示每次操作的下标 $p$。
输入输出样例
输入样例 #1
4 1000000
0 0 1 0
输出样例 #1
3
2 4 1
输入样例 #2
5 1000000
1 1 1 1 1
输出样例 #2
0
输入样例 #3
10 1000000
0 1 0 0 1 1 0 0 1 0
输出样例 #3
18
1 2 10 1 9 4 10 4 7 4 7 3 7 8 9 2 10 1
说明
**【样例解释 #1】**
每次操作后的序列 $a$ 分别为:
- $[0,1,1,0]$;
- $[0,1,1,1]$;
- $[1,1,1,1]$。
此时序列 $a$ 中的全部元素均相同。
**【数据范围】**
对于所有测试数据,$2\le n\le 2\times 10^3$,$a_i\in\{0,1\}$,$r = 2 \times 10^6$ 或 $10^6$。
**本题采用捆绑测试。**
- Subtask 1(20 points):$n\le 10$,$r=2\times 10^6$。
- Subtask 2(30 points):$r=2\times 10^6$。
- Subtask 3(50 points):$r=10^6$。