クロスワード強制!
不可解なクロスワード中毒者のクリスは、それらを解決する順序のアルゴリズムを設定しています。 上記の画像をガイドとして使用します。 クリスは常に最初の手がかりから始めます。この場合は1 Acrossです。クリスは有能なクロスワード愛好家なので、彼が取り組んでいる手がかりの答えを常に知っていると思われます。 クリスが手掛かりを完了すると、完了したものに隣接するすべての手がかり(最初のケースでは1ダウン、2ダウン、3ダウン)をチェックし、最も小さい番号の手がかりを完了します。隣接する手がかりがなければ、ステップ3に進みます。 手がかりが次の番号(ステップ3で説明)に横向きの手がかりと下向きの手がかりの両方がある場合、彼は最初に横向きの手がかりを完成させます(100%の確実性、OCDの境界線!) 隣接する手がかりがない場合、次の利用可能な手がかりに移動します(横または下)。 すべての手がかりが完了するまで、手順2から繰り返します。 親愛なるコーダー、これこそがあなた次第です。クロスワードテンプレートが提供されると、それを解決するためのChrisのアルゴリズムに基づいて、手がかりの順序を説明する出力を提供できるコードを作成する必要がありました。 コードは、クロスワードパズルテンプレートの入力を受け入れます。これは.、白い四角を表す形式と#黒い四角を表す形式です。 例: .....#......... .#.#.#.#.#.#.#. ...#...#....... .#.#.#.#.#.#.#. ....#.......... ##.#.#.#.#.#.#. ......#........ .###.#####.###. ........#...... .#.#.#.#.#.#.## ..........#.... .#.#.#.#.#.#.#. .......#...#... .#.#.#.#.#.#.#. .........#..... 入力は、a)クロスワードの表現のファイル読み取り、またはb)クロスワードの各行の行入力とそれに続く\n、\nEOFを示す2番目の入力によって行うことができます。 そして、Chrisが上記のアルゴリズムに従って解決する方法を決定します。 出力は、の形式の一連のコンマ区切りの命令の形式である必要がありますn(A|D)。ここnで、手がかり番号に続いてAforまたはDdownが続きます。 したがって、上記の例(画像とサンプルテンプレートの両方から1つが同じ)の場合、出力は次のようになります。 1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A 最短のコードが勝つ... テスト中 コード、バイトカウント、.およびand #形式で表される4つのテストケースの1つ、およびこの入力から生成された出力を提出する必要があります。4つのテストケースがあり、以下の3つと上記のサンプルテンプレートがあります。 テストケースの例: テストケース1 .....# .#.#.# ...#.. .#.#.# .....# ##.#.. 出力: 1A,1D,2D,3D,4A,5A,6A,7A テストケース2 .....#.. .#.##..# .#....#. ...##.#. …