問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
あなたは念願の3Dプリンタを購入しました。早速、いろいろな立体を出力して楽しみましょう!
3Dプリンタに入力される立体のデータは、大きさ 1×1×1 の立方体(セルという)を一つ以上組み合わせることで得られます。より正確に述べると次のようになります:
三次元空間で図1のような座標系 (x,y,z) を考えます。
立体データは、各座標 (x,y,z) でのセルが立体に含まれるかどうかを指定することで得られます。例えば、図2の立体は 14 個のセル (1,1,1), (1,2,1), (1,3,1), (2,1,1), (2,2,1), (3,1,1), (1,1,2), (1,2,2), (2,1,2), (2,2,2), (1,1,3), (1,2,3), (2,1,3), (2,2,3) を組み合わせることで得られます。
あなたはまず、出力したい立体のデータを作りました。あとは、データを3Dプリンタに入力して印刷するだけです。
しかし、データにミスがあっては大変です。慎重なあなたは、実際に印刷を始める前に、出力される立体を正面(x軸の正の方向)から見たときの図を求めてみることにしました。(図3)
立体のデータが入力された時、この立体を正面から見たときの図を出力するプログラムを書きましょう。
入力は以下のフォーマットで与えられます。
X Y Z
(1,1,1) (1,2,1) ... (1,Y,1)
(2,1,1) (2,2,1) ... (2,Y,1)
...
(X,1,1) (X,2,1) ... (X,Y,1)
--
(1,1,2) (1,2,2) ... (1,Y,2)
(2,1,2) (2,2,2) ... (2,Y,2)
...
(X,1,2) (X,2,2) ... (X,Y,2)
--
...
--
(1,1,Z) (1,2,Z) ... (1,Y,Z)
(2,1,Z) (2,2,Z) ... (2,Y,Z)
...
(X,1,Z) (X,2,Z) ... (X,Y,Z)
--
ここで、X は立体の奥行きを、Y は立体の横幅を、Z は立体の高さを表す整数です。
入力の 2 行目以降は、ある立体のデータを表しています。
各 (x,y,z) は '#' または '.' からなる一文字で、この文字が '#' のときはセル (x,y,z) が立体に含まれることを、'.' のときはセル (x,y,z) が立体に含まれないことを意味します。(1 ≦ x ≦ X, 1 ≦ y ≦ Y, 1 ≦ z ≦ Z)
入力には、X 行ごとに区切り記号
"--"
が入ることに注意してください。また、二つのセル (x,y,z) と (x,y+1,z) の間には、実際には空白文字は入っていないことに注意してください。(以下の入力例を参照)
入力された立体を正面(x軸の正の方向)から見たときの図を Z 行 Y 列で出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ X ≦ 50
・ 1 ≦ Y ≦ 50
・ 1 ≦ Z ≦ 50
3 3 3
###
##.
#..
--
##.
##.
...
--
##.
##.
...
--
##.
##.
###
5 5 5
#####
#####
#####
#####
#####
--
#####
#...#
#...#
#...#
#####
--
#####
#...#
#...#
#...#
#####
--
#####
#...#
#...#
#...#
#####
--
#####
#####
#####
#####
#####
--
#####
#####
#####
#####
#####
3 26 5
............#.............
......#..#.....#####......
#.....................#..#
--
............#.............
......#..#......#.........
#.....................#..#
--
............#.............
......####.......#........
####..................####
--
............#.............
......#..#........#.......
#..#..................#..#
--
............#.............
......####.....#####......
####..................####
--
####..####..#..#####..####
#..#..#..#..#.....#...#..#
####..####..#....#....####
#.....#..#..#...#.....#..#
#.....#..#..#..#####..#..#