CF168B Wizards and Minimal Spell

题目描述

让我们来探索魔法中最有趣的领域之一——书写咒语。学习这门激动人心但又富有挑战性的科学非常困难,因此现在你不会学习魔法词语,而只是了解书写咒语的基本规则。 每个咒语由若干行组成。若一行的第一个非空格字符是字符“\#”,那么这一行即被称为“增强行”,用于决定咒语的威力。其余各行称为普通行,用于决定咒语的效果。 你偶然间发现了一段咒语文本。由于咒语太长,你无法理解其意义,所以你希望在不改变意义的前提下,使其尽可能简短。 你已知的唯一简化手段,是删除一些空格和换行符。已知,在咒语文本中,只有增强行中的空格具有实际意义,因此应当移除其他行中的所有空格。对于换行符,除非有两行中有任意一行为增强行,否则换行符本身没有意义。因此,如果两行连续且都不是增强行,应将它们合并为一行(即将第二行接在第一行后)。增强行中的空格和将增强行与其他内容合并都是被禁止的。 需要注意,空行也应当与其他行等同处理:如果空行两侧相邻的都是非增强行,则应与它们合并;如果上下相邻的行(如果存在)都是增强行,则空行应当被保留在输出中。 目前你只需要按照上述说明删除多余字符即可(注意,换行符也是字符)。 输入包含若干行咒语文本,请对其删去多余的字符,并输出结果。

输入格式

输入包含多行。所有行中的字符编码均在 $32$ 到 $127$(包含)之间。请注意,某些行可能以一个或多个空格开始或结尾。输入大小不超过 $1048576\ (=2^{20})$ 字节。换行符也计入输入总大小。 在测评机所用的 Windows 操作系统下,一个换行由编码 $13$(回车符)与编码 $10$(换行符)组成。保证每一行后面都有换行符,特别地,输入的最后也有一个换行符。请注意,换行符属于该行的结尾,而不是下一行的起始。 保证输入中至少有一个换行符以外的字符。 建议以逐行方式进行输入与输出处理,这样将能正确地处理换行符。

输出格式

输出精简后的咒语文本,所有多余字符都已删去。请注意,输出中每一行行尾都需带有换行符。 请务必注意:评测将使用逐字节比对方式。因此,所有空格和换行符都极为重要。

说明/提示

在第一个样例中,增强行为第 1 和第 7 行。因此,第 2 到第 6 行需要互相连接,且需删除所有空格。 在第二个样例中,增强行为第 1 和第 3 行。因此,没有行被拼接在一起。 由 ChatGPT 5 翻译