単一の部屋がマークされたASCIIアートの「ホテル」の入力が与えられた場合、特定のルールに従って部屋番号を出力します。
ASCIIホテルの例を次に示します。
##
##
##### ##
##### ###### ##
##### ###### ##
##### ###### ##
ASCIIのホテルについてさらにいくつか説明します。
各「建物」は長方形の
#
文字で表され、それぞれ#
が「部屋」を表します。上記のホテルは3つの建物で構成されています。各建物は2列のスペースで区切られており、一番下の「床」は常に最後の行にあります。
各建物には、各フロアに1〜9の「フロア」(列)と1〜9の「ルーム」が常にあります。また、常に1〜9の建物があります。
部屋には次のように番号が付けられます
[building #][floor #][room on floor #]
。たとえば、上の図でいくつかの部屋をマークしましょう。## ## ##### ## ##### ####$# ## ##%## ###### ## ##### ###### #@
でマークされた
%
部屋は、部屋123(建物1、床2、床の3番目の部屋)です。同様に、でマークされた$
部屋は部屋235であり、@
部屋312である。建物、フロア、および「フロア上のn番目の部屋」は常に1から始まります。
入力は、1つの部屋がアスタリスク(*
)に置き換えられたASCIIホテルで構成されます。これは、部屋番号を出力する必要がある部屋です。入力は単一の文字列として取得する必要がありますが、改行の代わりにカンマを行区切り文字として使用できます(選択した言語が複数行入力を取得できない場合、または単一行入力を取得する方が短い場合)。オプションで、末尾のコンマ/改行が必要な場合があります。入力を完全な長方形にするために、行の末尾にスペースを埋め込むこともできます。
これはcode-golfであるため、バイト単位の最短コードが優先されます。
テストケース(垂直方向のスペースを節約するために単一のコードブロックに含まれています)
Input:
*
Output: 111
Input:
# # * # #
Output: 311
Input:
#####
#####
####*
#####
#####
Output: 135
Input:
#####
##### ######
##### ######
# # # ##### # # # ###### *
Output: 911
Input:
#
# #
# # ##
# # ## ###
# # ## ### #####
# # ## ### ##*## ########
# # ## ### ##### ########
Output: 523
Input:
#
*
#
#
#
#
#
#
######### # #
Output: 281
Input:
########*
#########
#########
#########
#########
#########
#########
#########
# # # # # # # # #########
Output: 999