atcoder#ARC093B. [ABC092D] Grid Components

[ABC092D] Grid Components

题目描述

2 2 つの整数 A, B A,\ B が与えられます。

各マスが白または黒に塗られたグリッドであって以下の条件を満たすものを、出力の項で指定されたフォーマットに従って一つ出力してください。

  • グリッドの大きさを縦 h h 行横 w w 列としたとき、h h および w w はともに 100 100 以下である。
  • 白く塗られたマスの集合はちょうど A A 個の連結成分に分かれている (連結成分という単語の定義については後の注釈を参照)。
  • 黒く塗られたマスの集合はちょうど B B 個の連結成分に分かれている。

制約の項で指定される条件のもとで解は必ず一つ以上存在することが証明できます。 解が複数ある場合、どれを出力しても構いません。

输入格式

入力は以下の形式で標準入力から与えられる。

A A B B

输出格式

以下の形式で出力せよ。

  • 1 1 行目には構成したグリッドの大きさを表す整数 h, w h,\ w を空白を区切りとして出力せよ。
  • 続いて h h 行出力せよ。このうちの i i 行目 (1  i  h 1\ \leq\ i\ \leq\ h ) には以下のような長さ w w の文字列 si s_i を出力せよ。
    • 構成したグリッドの i i j j (1  j  w 1\ \leq\ j\ \leq\ w ) 列のマスが白く塗られているならば、si s_i j j 文字目は . である。
    • 構成したグリッドの i i j j (1  j  w 1\ \leq\ j\ \leq\ w ) 列のマスが黒く塗られているならば、si s_i j j 文字目は # である。

题目大意

给出 A 和 B,要求构造出一个具有 A 个白色连通块和 B 个黑色连通块的矩阵。 (1<=A,B<=500)

2 3
3 3
##.
..#
#.#
7 8
3 5
#.#.#
.#.#.
#.#.#
1 1
4 2
..
#.
##
##
3 14
8 18
..................
..................
....##.......####.
....#.#.....#.....
...#...#....#.....
..#.###.#...#.....
.#.......#..#.....
#.........#..####.

提示

注釈

2 2 つの白く塗られたマス c1, c2 c_1,\ c_2 が連結であるとは、マス c1 c_1 からマス c2 c_2 へ、上下左右に隣り合うマスへの移動を繰り返して、 白く塗られたマスだけを通って移動できることを意味します。

白く塗られたマスの集合 S S が連結成分であるとは、S S が以下の条件を満たすことを意味します。

  • S S のどの 2 2 つのマスも連結である。
  • S S に含まれないどの白く塗られたマスと、S S に含まれるどのマスも連結ではない。

黒く塗られたマスについても連結成分を同様に定義します。

制約

  • 1  A  500 1\ \leq\ A\ \leq\ 500
  • 1  B  500 1\ \leq\ B\ \leq\ 500

Sample Explanation 1

この出力は以下のグリッドに対応します。 ![2701558bf42f7c088abad927b419472a.png](https://img.atcoder.jp/arc093/2701558bf42f7c088abad927b419472a.png)