AT_chokudai003_a ○×ブロック

题目描述

给你一个 $N \times N$ 的正方形区块,每个区块可能是以下三种之一:`o` 区块、`x` 区块或 `.` 区块。 你知道,不久后所有的`.`区块都会消失,位于其上的区块会因重力下落。 你可以在区块消失之前,将每个 `.` 区块转换为以下两种类型之一: - `+` 区块:不会消失的普通区块。 - `-` 区块:不仅不会消失,而且不会因重力下落。 你希望在更改后,使消失后由上下左右方向相连的 `o` 区块数量的最大值与相连的 `x` 区块数量的最大值之和最大化。 给定消失前的区块状态,请输出变更后的区块状态。

输入格式

> $S_1$ $S_2$ : $S_N$

输出格式

请以与输入相同的格式输出更改后的区块布局。注意,`+` 区块用 `+` 表示,`-` 区块用 `-` 表示。 连通块数量之和为该测试点得分,$10$ 组测试点得分之和为你本次提交的总得分。

说明/提示

### 约束 - $N = 50$ - $S_i$ 是 $N$ 个字符组成的字符串,第 $j$ 个字符 $S_{i,j}$ 为 `o`、`x` 或 `.` 中的一个。 - 输入随机生成,每个字符$50\%$概率为`.`,$25\%$概率为`o`或`x`。 ### 样例说明 1 此输入为说明而设的较小样例,实际测试点不会出现。所有的`.`区块消失后,状态如下图所示。图片中,`o`区块用○,`x`区块用×,`+`区块用★,`-`区块用■表示。 ![例](https://atcoder.jp/img/chokudai003/board.png) 由 ChatGPT 5 翻译