3911. 最小表示

单点时限: 1.0 sec

内存限制: 512 MB

给定一个 $n$ 位非负二进制数 $s=(b _ {n-1}\dots b_2 b_1 b_0) _ 2$,($b_i \in { 0,1 }$),请找出一个长度为 $m$ 的数列 $a_{m-1},\dots,a_2,a_1,a_0$,($a_i \in { -1,0,1}$),使得:

$$ \sum_{i=0}^{n-1}2^i\cdot b_i = \sum_{i=0}^{m-1}2^i\cdot a_i$$

求出所有满足条件的序列 $a$ 中,$1$ 和 $-1$ 出现次数之和的最小值,并给出一种可行的方案。

输入格式

一行,一个没有前导零的 $n$($1\le n \le 10^6$)位非负二进制数,表示 $s$。

输出格式

共两行,第一行一个正整数 $m$($1 \le m \le 2\times 10^6$),表示数列 $a$ 的长度。

一行,$m$ 个空格分隔的整数,分别表示 $a_{m-1},\dots,a_2,a_1,a_0$($a_i\in { -1,0,1}$)。

样例

Input
111
Output
4
1 0 0 -1 
Input
11011111101010010
Output
18
1 0 0 -1 0 0 0 0 0 0 -1 0 -1 -1 0 0 1 0 

127 人解决,172 人已尝试。

142 份提交通过,共有 533 份提交。

3.5 EMB 奖励。

创建: 4 年,2 月前.

修改: 4 年,2 月前.

最后提交: 11 月前.

来源: N/A

题目标签