#423. [R68C]这是一道01串题3

[R68C]这是一道01串题3

时空限制

1S/512M

题目描述

给定一个长度为偶数的 0101SS

你需要修改最少数量的字符(将 0 变为 1,或将 1 变为 0),使得修改后的 0101 串中 01 的数量相同。

在此基础上,你还需使得修改后的 0101 串的字典序^\dagger最小

请计算最少需要修改的字符个数,并给出这些被修改字符在原串中从 11 开始的下标。

字典序^\dagger:对于两个长度相同的序列 b1,b2,,bnb_1,b_2,\dots,b_nc1,c2,,cnc_1,c_2,\dots,c_n,若对任意 1in1\le i\le n 都有 bi=cib_i=c_i,则称两个序列字典序相同。否则,设 tt 为第一个满足 btctb_t\ne c_t 的位置,即对于所有 1i<t1\le i<t,均有 bi=cib_i=c_i。若 bt<ctb_t<c_t,则称序列 bb 的字典序小于序列 cc;若 bt>ctb_t>c_t,则称序列 bb 的字典序大于序列 cc

格式

输入格式

第一行包含一个偶数 nn,表示字符串的长度。

第二行包含一个长度为 nn 且仅由 01 组成的字符串 SS

输出格式

第一行输出一个整数 mm,表示最少需要修改的字符个数。

第二行输出 mm 个用空格隔开的整数,表示需要修改的字符在原串中从 11 开始的下标(按升序排列)。

样例

样例输入 #1

4
1011

样例输出 #1

1
1

样例输入 #2

4
0001

样例输出 #2

1
3

样例输入 #3

4
0101

样例输出 #3

0

数据规模

对于 100%100\% 的数据,2n2×1052 \le n \le 2 \times 10^5,且 nn 为偶数。字符串 SS 仅由字符 01 组成。