親友がジグソーパズルを集め始め、そのコレクションの詳しいカタログを作りたいと思っています。ピースの総数、行と列の数、枠のピースと内側のピースの数、アスペクト比、パズルの形式といった情報を記録するためです。
二人の力を合わせても、1000ピースのジグソーパズルを1つ完成させるのに何時間もかかります。しかもそのあと、行と列を数え、残りの数値を手作業で計算しなければなりません。何千ピースもあるさらに大きなパズルは、今となってはとても手に負えそうにありません。「もっといい方法があるはずだ!」と叫んで、コンピューターの前に座り、問題を解くことにしました。
ジグソーパズルについての情報が一部だけ与えられます。足りないピースを補いましょう。
情報が足りず詳細を完成できない場合、または与えられた項目が矛盾している場合は、ユーザーに通知する必要があります。
ジグソーパズルの完全な情報には、次の項目が含まれます:
pieces:ピースの総数border:枠のピースの数inside:内側(枠以外)のピースの数rows:行の数columns:列の数aspectRatio:列と行のアスペクト比format:パズルの形式で、portrait、square、landscapeのいずれかですこの演習では、ピースは正方形だと仮定してよいので、形式はアスペクト比から導けます:
portraitですsquareですlandscapeですportrait縦長のジグソーパズルで、ピースは6つ、そのすべてが枠のピースで、内側のピースはありません。列は2つ、行は3つです。アスペクト比は0.666666...(2/3)です。
square正方形のジグソーパズルで、ピースは9つ、中央にある1つを除いてすべて枠のピースで、その1つは内側のピースです。列は3つ、行は3つです。アスペクト比は1.0(3/3)です。
landscape横長のジグソーパズルで、ピースは12、うち10が枠のピースで、2つが内側のピースです。列は4つ、行は3つです。アスペクト比は1.333333...(4/3)です。