P12909 [NERC 2020] Japanese Game
题目描述
Joseph 非常喜欢日本文化。去年他学习了日本传统服饰和视觉艺术,现在他正试图揭开名为 **Nonogram** 的日本游戏的秘密。
在该游戏的一维版本中,有一排 $n$ 个空单元格,其中一些需要用笔填充。游戏的解由一个称为 **profile** 的描述定义——这是一个由正整数构成的序列,表示连续填充单元格块的长度。例如,profile $[4, 3, 1]$ 表示填充的单元格块依次为 4 个、3 个和 1 个,且这些块之间至少有一个空单元格分隔。

一个适合 $n = 12$ 且 $p = [4, 3, 1]$ 的解。

一个错误的解:前四个填充的单元格应该是连续的。

一个错误的解:最后一个填充的单元格之前应该至少有一个空单元格。
Joseph 发现,对于某些数字 $n$ 和 profile $p$,存在多种填充单元格的方式以满足该 profile。现在,他正在尝试解决一个由 $n$ 个单元格和 profile $p$ 构成的 nonogram 问题。他已经为 $p$ 创建了一个 **mask**——即填充了所有在 nonogram 的每个解中都必须填充的单元格。

$n = 12$ 且 $p = [4, 3, 1]$ 的 mask:上图中所有填充的单元格在每个解中都必须填充。
休息一段时间后,他丢失了原始的 profile $p$。现在他只有 $n$ 和 mask $m$。请你帮助 Joseph 找到任意一个与 mask $m$ 匹配的 profile $p'$,或者说明不存在这样的 profile(即 Joseph 可能犯了错误)。
输入格式
唯一一行包含一个字符串 $m$——表示原始 profile $p$ 的 mask。
字符串 $m$ 的长度为 $n$($1 \le n \le 100\,000$)。
字符串 $m$ 由符号 $\texttt{\#}$ 和 $\texttt{\_}$ 组成,分别表示填充和空的单元格。
输出格式
如果不存在与 mask $m$ 匹配的 profile,则输出 $-1$。
否则,在第一行输出一个整数 $k$——表示 profile $p'$ 中整数的数量。
在第二行,输出 $k$ 个整数,即 profile $p'$。
说明/提示
翻译由 DeepSeek V3 完成