問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
これは A ランクの問題として出題されていた問題です。試しに解いてみましょう。
現時点では自力で正解することができない場合は、この問題を飛ばして次の問題に進んでください。
この問題の後に続く 4 つの問題に順番に取り組むことで、
この「落ちものシミュレーション」の問題を解くために必要な知識や考えた方を身につけることができます。
A ランク獲得に向けた学習にお役立てください。
入力は以下のフォーマットで与えられます。
H W N
h_1 w_1 x_1
h_2 w_2 x_2
...
h_N w_N x_N
・ 1 行目には 3 つの整数 H, W, N がこの順に半角スペース区切りで与えられます。H はフィールドの縦幅を、W はフィールドの横幅を、 N は落ちてくる長方形の個数を表します。
・ 続く N 行のうち i 行目 (1 ≦ i ≦ N) には i 番目に落ちてくる長方形のサイズと落ちてくる位置の情報が入力されます。ここではこの長方形の縦幅 h_i、横幅 w_i、長方形の左端とフィールドの左端の距離 x_i がこの順に半角スペース区切りで与えられます (問題文中の図を参照)。
・ 入力は合計で N + 1 行であり、入力最終行の最後に改行が 1 つ入ります。
N 個の長方形がすべて落ちた後のフィールドの状態を、以下のフォーマットで出力してください。
f_1
f_2
...
f_H
・ 期待する出力は H 行からなります。
・ 出力の i 行目 (1 ≦ i ≦ H) にフィールドの上端から距離 i の各地点の状態を表す長さ W の文字列 f_i を出力してください。
・ f_i の j 番目 (1 ≦ j ≦ W) の文字は、フィールドの上端、左端からの距離が i, j となる地点の状態を表し、ここにブロックがあるときは "#"、ないときは "." となります。
・ 出力の H 行目の最後に改行を 1 つ入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて以下の条件を満たします。
添字の範囲は 1 ≦ i ≦ N とする。
・ 入力されるすべての値は整数
・ 1 ≦ H, W, N ≦ 30
・ 1 ≦ h_i ≦ H
・ 1 ≦ w_i ≦ W
・ 0 ≦ x_i ≦ W - w_i
・ N 個の長方形はすべてフィールド内に収まる
7 10 4
1 8 1
4 1 5
1 6 2
2 2 0
..........
..######..
.....#....
.....#....
##...#....
##...#....
.########.
10 10 9
2 2 4
2 2 3
2 2 5
2 2 2
2 2 6
2 2 1
2 2 7
2 2 0
2 2 8
##......##
##......##
.##....##.
.##....##.
..##..##..
..##..##..
...####...
...####...
....##....
....##....