QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 512 MB Total points: 100

#1671. 日语游戏

Statistics

Joseph 非常喜欢日本文化。去年他学习了日本传统服饰和视觉艺术,现在他正试图揭开一种名为“数织”(Nonogram)的日本游戏的秘密。

在一维版本的游戏中,有一行 $n$ 个空单元格,其中一些需要用笔填充。有一种关于解的描述称为“轮廓”(profile)——这是一个正整数序列,表示连续填充单元格的长度。例如,轮廓 $[4, 3, 1]$ 意味着依次有长度为 4、3 和 1 的填充单元格集合,且连续的集合之间至少有一个空单元格。

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

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

错误的解:最后一个填充单元格之前应该至少有一个空单元格。

Joseph 发现,对于某些数字 $n$ 和轮廓 $p$,有很多种填充单元格的方法可以满足该轮廓。现在他正在解决一个由 $n$ 个单元格和轮廓 $p$ 组成的数织游戏。他已经创建了一个 $p$ 的掩码(mask)——他填充了在数织游戏的所有解中都必须被填充的所有单元格。

当 $n = 12$ 且 $p = [4, 3, 1]$ 时的掩码:上面所有被填充的单元格在每个解中都是被填充的。

休息过后,他丢失了原始轮廓 $p$。他只剩下 $n$ 和掩码 $m$。请帮助 Joseph 找到任何一个具有掩码 $m$ 的轮廓 $p'$,或者指出不存在这样的轮廓,说明 Joseph 犯了错误。

输入格式

唯一的一行包含一个字符串 $m$ —— 原始轮廓 $p$ 的掩码。$m$ 的长度为 $n$ ($1 \le n \le 100\,000$)。字符串 $m$ 由符号 #_ 组成,分别表示被填充和空的单元格。

输出格式

如果没有具有掩码 $m$ 的轮廓,输出数字 $-1$。否则,在第一行输出一个整数 $k$ —— 轮廓 $p'$ 中整数的个数。在第二行,输出轮廓 $p'$ 的 $k$ 个整数。

样例

样例 1

__#_____
2
3 2

样例 2

_#
-1

样例 3

___
0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.