#P9271. [CEOI 2013] 停车场 / Splot

[CEOI 2013] 停车场 / Splot

Description

停车场的运营商希望以一种方式安排进站的车辆,让图中没有车辆被阻挡。

编写一个程序,计算可以停放在给定停车场的最大汽车总数,(包括已经在那里的汽车),使它没有任何汽车被阻挡,也不会移动任何已经在那里的车。此外,程序应该找到一种方法来安排停车图中最大数量的汽车。

Input Format

输入一行,包含一个至少 11 个、最多 1010 万个字符的序列,表示给定的 splot 的编码。序列中只会出现大写字母 PS,小写字母 ox,以及字符 #ASCII 35)和 |ASCII 124)。根据上面的规则,输入将是一个 splot 的编码。输入保证已经在停车场的汽车都不会被阻挡。

Output Format

输出应包含 22 行。第一行应该包含一个整数 mm,表示可以停放在 splot 中的最大汽车数量。

第二行应该包含一个字符序列,表示最终将车停放进 splot 的最佳方案。该序列应恰好包含 mm 个字母 x,并且是通过将原来的一些字母 o 替换为 x 得来的。

可能有多个最佳安排,程序可以输出其中的任何一个。

Po|Px|Sxo#Soo#|o#Soo#|o#
3
Po|Px|Sxo#Sox#|o#Soo#|o#
Po|SPo|oo|o#Px|oo|o##Po|Sxo#Po|ox|o#|o#|o#
7
Po|SPo|xx|o#Px|ox|o##Po|Sxx#Po|ox|o#|o#|o#

Hint

样例解释见题目描述最后一趴。

如果输出不正确或不完整,但第一行输出(最大汽车数量)是正确的,你将获得相应测试点 80%80\% 的分数。

30%30\% 的测试点中,splot 中的停车位总数最多为 2020 个。

在另外 40%40\% 的测试点中,splot 为空,即输入不包含字母 x

对于 100%100\% 的数据,给定的 splot 的编码最多包含 1010 万个字符。

SPJ 提供者:

https://www.luogu.com.cn/user/542457