#P11084. [ROI 2019 Day 2] 灯串

[ROI 2019 Day 2] 灯串

题目背景

翻译自 ROI 2019 D2T1

对于一个由 01 组成的序列,“美丽的”的定义是:如果这个序列的第一个 1 前面 0 的数量和最后一个 1 后面 0 的数量相等,且每两个 1 之间的 0 的数量也等于这个数值,则称这个序列是“美丽的”。

例如,010101011111 是“美丽的”,而 10101010100001000001010000 就不是“美丽的”。

题目描述

给定一串由 01 组成的序列(保证 1 的数量不为 00),需要删除其中任意位置的一些元素,使得剩下的序列构成最长的美丽的串。

输入格式

第一行输入一个数 nn,表示这个序列的长度。

第二行输入一个字符串 ss,只由 01 组成,表示这个序列。

输出格式

第一行输出一个数 mm,表示删除后剩下的序列长度。

第二行输出通过删除操作后剩下的这个“美丽的”序列。

如果有多种方案,输出任意一种。注意:全为 0 的串不是“美丽的”

10
0100100000
7
0001000
3
111
3
111
7
0100101
5
01010

提示

设原串有 kk11

子任务 分值 1n1\le n\le 1k1\le k\le
11 2020 1515 nn
22 10001000 22
33 1515
44 1616 nn
55 1010 100000100000 5050
66 1414 500000500000 nn