介绍
我的外女想要赛车。她的木部分可以组合成轨道。每个零件均为正方形,并包含不同的形状。我将使用管道绘图字符进行说明:
│
:垂直走的路─
:水平行驶的道路┌
┐
└
┘
:转向的道路┼
:带有地下通道的桥梁
奇怪的是,没有t型接头。
这是一个可能的赛车轨迹的示例:
┌─┐
│ │┌─┐
│ └┼─┘
└──┘
有效赛车轨道的规则如下:
- 没有路可走。
- 它必须形成一个循环(所有部分都必须是同一循环的一部分)。
- 在桥梁/地下通道,您不能转弯(因此,您必须直接穿过它们)。
不幸的是,我和我的侄女所拥有的赛车履带有限。但是我们绝对希望在赛道上使用所有这些。编写一个程序,给定我们库存中有哪些零件的列表,并输出使用所有这些零件的赛车轨道。
输入说明
我们希望输入通过STDIN,命令行参数,文件读取或用户输入函数(例如raw_input
或prompt
)输入。输入是逗号分隔的正整数,格式为
│,─,┌,┐,└,┘,┼
其中每个代表我们所拥有的特定件数。因此,例如输入:
1,1,1,1,1,1,1
意味着我们每个都有一个。
输出说明
使用上面列出的管道图字符输出赛车轨道。赛车轨道应准确使用输入中指定的每个零件的编号-不得多于或少于。每次输入至少会有一条有效的赛车轨迹。
输入和输出示例
输入: 3,5,2,2,2,2,1
可能的输出:
┌─┐
│ │┌─┐
│ └┼─┘
└──┘
输入: 0,0,1,4,4,1,3
可能的输出:
┌┐
└┼┐
└┼┐
└┼┐
└┘
是否需要提供输出?还是仅在理论上需要给出输出?
—
Sumurai15年
@ Sumurai8“理论上”给出输出是什么意思?您的意思是程序不会终止很长时间,但最终会给出输出吗?
—
2015年
一个人可能可以创建一个nxn的正方形区域,其中填充了竞赛部分和空的正方形,您可以在其中生成排列,直到找到赛道。这将永远花费不止几个瓷砖。
—
Sumurai15年
@ Sumurai8好的,我现在明白了。对于在挑战中显示的小值输入,我希望程序在宇宙热死之前给出输出。
—
2015年
你侄女不够耐心!:P
—
Sumurai15年