あなたは研究助手として雇われ、ラットの迷路を構築する小さなプログラムを作成するように依頼されました。ラットボックスは常に62x22で、次のように、ラットの入り口(a)と出口(A)があります(入力1)。
#######a######################################################
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
#################################################A############
次のように、プログラムはボックスをブロック(#)で満たし、ラット用のパスを残さなければなりません(出力1)。
#######a######################################################
####### ######################################################
####### ######################################################
####### ######################################################
####### ######################################################
####### ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
################################################# ############
#################################################A############
これは簡単だと思います!あなたは自信に満ちた小さなプログラムを書き始めます。しかし、原理科学者は新しいアイデアを持っていました-彼は2匹のネズミが同時に迷路をナビゲートすることを望んでいます。Rattanshnorter博士は、ドアと出口が異なることを説明しています(入力2)。
#b#####a######################################################
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# #
# B
# #
#################################################A############
ラットは交差点を直進するように訓練されていますが、T交差点ではラットが混乱し、実験が無効になります。良い医者が最後の要件を説明すると、より複雑な新しいタスクを開始します:ラットはお互いに野であるため、ラットがいつでも会うとラットの戦いが勃発し、両方が倫理委員会の前にいます。これで、プログラムが次のような迷路を出力するはずであることがわかります(出力2)。
#b#####a######################################################
# ##### ######################################################
# ##### ######################################################
# ##### ####################################### ####
# ##### ####################################### ######### ####
# ##### ####### ####
# ############################################# # ####### ####
# ############################################# # ####### ####
# ############################################# # ####### ####
# ############################################# # ####### ####
# # ####### ####
################################################# ####### ####
################################################# ####### ####
################################################# ####### ####
################################################# ####### ####
################################################# ####### ####
################################################# ####### ####
################################################# ####### ####
################################################# ####### ####
################################################# ####### B
################################################# ############
#################################################A############
ラットBが交差点に到達するまでに、ラットAは廊下を下りてAを出て、ラットの戦いは回避されます。
ルール:
プログラムは、上記のような入力を(STDINまたはファイル)入力し、多くのスペースがハッシュ(#)になることを除いて、同じデータを出力(STDOUTまたはファイル)する必要があります。入力文字列の
;
代わりに任意の単一文字(など)を使用でき\n
ますが、出力文字列には文字が必要\n
です。更新しましたラットの経路は、交差点を除き、1文字幅でなければなりません(すべてのスペースには、直交する隣接する
#
文字が0個または2個必要です)。交差点を除き、各ラットには明確な単一の経路が必要です。T交差点は許可されていません。ラットは同時に解放され、一定の速度で動きます。決して2匹以上のラットがお互いを見ることはありません(
#
間に1つ以上の文字がなくても同じ列または行にいる)。解決策がない場合(隣接する入口点など)、印刷
Impossible\n
して終了します。入口と出口はどの側面にあってもかまいませんが、角には決してありません。
一致する入口と出口が隣接している場合(例
##aA##
:)、ラットはからa
に直接移動できませんA
。迷路エリア内に2つの小さな廊下セクションが必要です。ラットが出口ポイントに到達するターン(またはその後)は、他のラットには見えなくなります。
プログラムは、1、2、最大26匹のラットの迷路を計算するように設計されている場合があります。
標準の抜け穴は許可されていません。
スコア:
ソリューションを使用して、プログラムが解決できる迷路(N)あたりのラット数を指定します。スコアは、バイト単位のコード長をこの数値Nで割ったものです。
あなたのプログラムが生成するものを見ることができるように、回答にサンプル出力を含めてください。