AT_kupc2021_b Painting with Many Orders

题目描述

现在有一个 $N \times N$ 的网格。你的任务是将网格中的每个格子涂成白色或者黑色。 请设计一种涂色方案,要求满足以下条件: - 所有的白色格子必须要连在一起。(对于任意两个白色格子,你都可以通过连续走过相邻的白色格子到达另一个白色格子。) - 每个黑色格子至少与一个白色格子边相邻。 - 如果第 $i$ 行的黑色格子数量是 $p_i$,则数列 $P = (p_1, p_2, \ldots, p_N)$ 必须是 $0$ 到 $N-1$ 的所有整数的一种排列。 - 如果第 $j$ 列的黑色格子数量是 $q_j$,那么数列 $Q = (q_1, q_2, \ldots, q_N)$ 也必须是 $0$ 到 $N-1$ 的所有整数的一种排列。

输入格式

输入通过标准输入给出,仅有一行: > $ N $

输出格式

输出满足题目要求的涂色方案。网格中第 $i$ 行第 $j$ 列格子的颜色用 $c_{i,j}$ 表示: - 如果格子是白色,使用字符`.` 表示。 - 如果格子是黑色,使用字符`#`表示。 请注意不要包含额外的空格或换行符,否则可能会导致输出错误。 输出格式如下: > $ c_{1,1} $$ c_{1,2} $$ \ldots $$ c_{1,N} $ > $ c_{2,1} $$ c_{2,2} $$ \ldots $$ c_{2,N} $ > $\vdots$ > $ c_{N,1} $$ c_{N,2} $$ \ldots $$ c_{N,N} $ ## 约束条件 - $ 2 \leq N \leq 500 $ ### 示例解释 以下是符合题目所有条件的输出示例。而不符合条件的例子包括: ``` . # . # # . . . . ``` (白色格子没有连在一起。) ``` # # . # . . . . . ``` (有黑色格子未与任何白色格子相邻。) ``` # # . . . . . . # ``` (列数列 $ Q = (1, 1, 1) $ ,这并不是 $ 0 $ 到 $ N-1 $ 的一个排列。) **本翻译由 AI 自动生成**

说明/提示

### 制約 - $ 2\ \leq\ N\ \leq\ 500 $ ### Sample Explanation 1 この出力は問題文のすべての条件を満たします。 条件を満たさない出力としては、次のようなものがあります。 ``` .#. ##. ... ``` (白いマスが連結ではない。) ``` ##. #.. ... ``` (白いマスに辺で隣接していない黒いマスがある。) ``` ##. ... ..# ``` ($ Q\ =\ (1,\ 1,\ 1) $ であり、これは $ 0 $ から $ N-1 $ の順列ではない。)