P11084 [ROI 2019] 灯串 (Day 2)
题目背景
翻译自 [ROI 2019 D2T1](https://neerc.ifmo.ru/school/archive/2018-2019/ru-olymp-roi-2019-day2.pdf)。
对于一个由 `0` 和 `1` 组成的序列,“美丽的”的定义是:如果这个序列的第一个 `1` 前面 `0` 的数量和最后一个 `1` 后面 `0` 的数量相等,且每两个 `1` 之间的 `0` 的数量也等于这个数值,则称这个序列是“美丽的”。
例如,`0101010` 和 `11111` 是“美丽的”,而 `10101` 和 `010100001000001010000` 就不是“美丽的”。
题目描述
给定一串由 `0` 和 `1` 组成的序列(保证 `1` 的数量不为 $0$),需要删除其中任意位置的一些元素,使得剩下的序列构成最长的美丽的串。
输入格式
第一行输入一个数 $n$,表示这个序列的长度。
第二行输入一个字符串 $s$,只由 `0` 和 `1` 组成,表示这个序列。
输出格式
第一行输出一个数 $m$,表示删除后剩下的序列长度。
第二行输出通过删除操作后剩下的这个“美丽的”序列。
如果有多种方案,输出任意一种。**注意:全为 `0` 的串不是“美丽的”**。
说明/提示
设原串有 $k$ 个 $1$。
| 子任务 | 分值 | $1\le n\le$ | $1\le k\le$ |
| :----------: | :----------: | :----------: | :----------: |
| $1$ | $20$ | $15$ | $n$ |
| $2$ | $20$ | $1000$ | $2$ |
| $3$ | $20$ | $1000$ | $15$ |
| $4$ | $16$ | $1000$ | $n$ |
| $5$ | $10$ | $100000$ | $50$ |
| $6$ | $14$ | $500000$ | $n$ |