编程介的小学生 2019-11-14 22:51 采纳率: 20.5%
浏览 67

PICTURE PUZZLE 求解答

Description

One type of picture puzzle consists of nine square pieces, each of which has one-half of a picture on each edge. The pictures on each piece are either the left or the right half of one of four pictures designated B, C, K and P for this problem. The picture halves are aligned along the edges so that, if the left half is on one piece and the right on another, when the two pieces are aligned the pictures match. The purpose of the puzzle is to place the nine pieces into a three by three grid so that all the pictures along the adjacent edges match. Note that some of the pieces may need to be rotated to match.

Write a program to solve one or more instances of the puzzle.
Input

The input consists of a sequence of problems. Each problem begins with the problem number on a line by itself.The end of the data is indicated by a problem number of 0. Following the problem number line will be nine lines describing the pieces. Each of these lines begins with the piece number (1 through 9) followed by the picture on the top, right side, bottom and left side of the piece, in that order and separated by spaces. The picture halves are BL,BR, CL, CR, KL, KR, PL and PR. BL matches with BR, CL matches with CR, KL matches with KR and PL matches with PR. (For example, BL is the left half and BR is the right half of the picture designated B)
Output

The output for each problem is to be: A line with the problem number followed by a colon (':'). If the problem has no solution, the next line should be "No Solution". If there is a solution, that solution should be displayed as follows:
Since any solution may be rotated 90, 180 or 270 degrees to obtain another, the center square should be in the orientation given in the input and other squares aligned accordingly. Each row of pieces is displayed on three lines with a blank line between rows. The format for a single piece is:



A single blank line should follow the output for each problem.
Sample Input

1
1 BR KR PL CR
2 CL PR BL KR
3 KR PR CR BL
4 PL KR BL CL
5 PL BR CL KR
6 PR CL BR PL
7 CR KL BL PR
8 BL CR KL PL
9 KL CL PR BL
2
1 PR PR BL CR
2 BR KL CR PR
3 CR BL PL KR
4 KL PL BL CL
5 BR CR PL KR
6 KL BR PL CR
7 CL PL BL KR
8 KR KL CR BL
9 CR KL PR BL
3
1 PL KL CL BR
2 PL CR KL BL
3 PR BR CL KR
4 CR PL BR KR
5 PR CL BR KR
6 BL KL CR PR
7 PL BL CL KR
8 PR CR KL BR
9 KL BL CL PL
0
Sample Output

1:
CL KR KL

PR 6 BR BL 2 CL CR 7 BL
PL PR PR

PR PL PL

KR 3 CR CL 4 KR KL 8 BL
BL BL CR

BR BR CL

PL 5 CL CR 1 KR KL 9 PR
KR PL BL

2:
No Solution

3:
KL BR BL

BL 6 CR CL 5 KR KL 9 CL
PR PR PL

PL PL PR

KR 7 BL BR 1 KL KR 3 BR
CL CL CL

CR CR CR

PL 2 KL KR 4 PL PR 8 KL
BL BR BR

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 iqoo11 如何下载安装工程模式
    • ¥15 本题的答案是不是有问题
    • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
    • ¥15 C++使用Gunplot
    • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
    • ¥15 matlab数字图像处理频率域滤波
    • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
    • ¥15 ELGamal和paillier计算效率谁快?
    • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
    • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?