これは、ルーピーパズルチャレンジを生成するための追加のチャレンジです。前のリンクのより難しいチャレンジを試みる前に、このチャレンジを解決することをお勧めします。
この課題の目標は、ルーピーパズルのソリューションを検証することです。前のリンクからルーピーパズルが何であるかに関するすべてのドキュメントを入手してください。解決されたルーピーパズルは、「ルーピーパズルの生成」チャレンジへの有効な提出の出力と非常に似た方法でフォーマットされ、次のようになります。
+-+-+ +-+ +-+ +
| | | |2|3|
+-+ + + + + +-+
2| | | |2| 3|
+ + +-+ + + +-+
2| 2 1|3| |
+-+ +-+ +-+ +-+
|2 | | 1 2|
+ +-+ +-+ +-+ +
| |2 1 2|3|3| |
+ + +-+ +-+ +-+
| | |3|2 1
+ +-+ +-+-+-+-+
| 2 2 |
+-+-+-+-+-+-+-+
ソリューションを構成するパスは、文字|と-文字の間の+文字でマークされています。
入力仕様
プログラムは、上記の例のようにフォーマットされたソリューションを入力として、ループパズルを受け取ります。プログラムは入力からパズルのサイズを推測します。入力について次の仮定を行うことができます。
- パズルは、どちらの方向にも2セル以上99セル以下です
- したがって、各行の最大長は199文字で、改行文字は含まれません。
- したがって、入力には最大99行が含まれます
- 各行は、最後の印刷可能な文字の後に終了するか、空白文字で埋められるため、2・y + 1文字までの長さになります。ここで、yは水平方向のセル数です。
- x座標とy座標の両方を持つ各位置には
+文字も含まれます +文字を含む位置に水平または垂直に隣接する位置には、空白文字が含まれるか、行末にあるか、-水平に隣接する場合は文字が含まれ、|垂直に隣接する場合は文字が含まれます- 他のすべての位置が行の最後の後ろにされているか、のいずれかの文字が含まれている
、0、1、2、または3 - すべての行は、プラットフォームのデフォルトの改行文字で終了します
- 末尾に改行が1つだけあります
入力は、次のいずれかの方法で受信されます。
- 標準入力から
pHTTP POSTリクエストで指定されたパラメータの値として- HTMLフォームのコンテンツとして
p実装定義のディレクトリで名前が付けられたファイルのコンテンツとして- 前者の4つが利用できない場合、実行時に定義された実装方法で
- 言語が入力を受け取る手段を提供しない場合はハードコード
出力仕様
プログラムは、入力仕様に一致するすべての入力に対して終了し、パズルの解が正しいかどうかを計算します。プログラムは、計算の結果を次のいずれかの方法でブール値として出力します。
- ゼロ(解が有効)または非ゼロ(解が無効)の終了状況として
- 文字
y(解は有効)またはn(解は無効)の後に、実装で定義された方法で0個以上の任意の文字が出力される
入力仕様に従ってフォーマットされていない入力に遭遇したときのプログラムの動作は規定されていません。
得点
プログラムのスコアは、省略可能な空白文字と省略可能なコメントを除いて、ソース内の文字数です。他の人が読みやすいように投稿をインデントし、フォローしやすいようにソリューションにコメントを付けることをお勧めします。
入力または出力仕様に従わない、または不正な結果を生成する提出は無効です。
0は、セルの有効な数値でもあることに注意してください。