完全不受Lyxal的启发,在聊天中反复提到电梯:P
简而言之:模拟一些人在电梯里加油,然后离开电梯。
电梯被简化为一个网格,每个人都可以占用网格的一个单元。网格的高度和宽度是输入参数。宽度总是奇数,在顶部的中心有一个1单位宽的开口。下图显示了一个宽度为5和高度4的电梯,最初是空的:
+------ ------+
| ? ? ? ? ? |
| ? ? ? ? ? |
| ? ? ? ? ? |
| ? ? ? ? ? |
+---------------+现在,20个人,按登机顺序从1到20人,开始给电梯加油。人们倾向于坚持在前面,但不能阻止其他人登机时,有些地方仍然是空的。作为一种简化,让我们简单地假设人们从最前面的行中填充左-右-左-右的位置,而中间的列则为空(然后由最后几个人填充):
+------ ------+
| 1 3 20 4 2 |
| 5 7 19 8 6 |
| 9 11 18 12 10 |
| 13 15 17 16 14 |
+----------------+当人们离开电梯时,他们会一排排地,从中间的列开始,然后左右交替。因此,离开的顺序如下:
20, 3, 4, 1, 2, 19, 7, 8, 5, 6, 18, 11, 12, 9, 10, 17, 15, 16, 13, 14挑战是为给定的电梯宽度和高度产生这个序列(同样,宽度保证为奇数)。
您可以使用基于0的编号代替基于1的编号。
应用序列 I/O。I/O格式可以有三种方式之一:
适用标准的密码-高尔夫规则。以字节为单位的最短代码获胜。
width = 1, height = 1
output = 1
width = 1, height = 10
output = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
width = 9, height = 1
output = 9, 7, 8, 5, 6, 3, 4, 1, 2
width = 7, height = 5
output = 35, 5, 6, 3, 4, 1, 2, 34, 11, 12, 9, 10, 7, 8, 33, 17, 18,
15, 16, 13, 14, 32, 23, 24, 21, 22, 19, 20, 31, 29, 30, 27, 28, 25, 26发布于 2021-06-29 13:53:51
p1Ṛ;@pỤɓḊU^1获取(高度、宽度)参数并返回序列。
不相关的字符串保存了两个字节。谢谢!
(宽度,高度)= (7,5)的
ḊU^1是[width..2],每个XORed都有1:[6,7,4,5,2,3]。
我们用笛卡儿p的[1..height]旋光管。结果是一个6×5对的列表:
[[1,6], [1,7], [1,4], [1,5], [1,2], [1,3], [2,6], [2,7], [2,4], [2,5], [2,2], [2,3], [3,6], [3,7], [3,4], [3,5], [3,2], [3,3], [4,6], [4,7], [4,4], [4,5], [4,2], [4,3], [5,6], [5,7], [5,4], [5,5], [5,2], [5,3]]
然后,p1Ṛ;@将[[5,1],[4,1],[3,1],[2,1],[1,1]]追加到这个列表中,总共为7×5对。
[[1,6], [1,7], [1,4], [1,5], [1,2], [1,3], [2,6], [2,7], [2,4], [2,5], [2,2], [2,3], [3,6], [3,7], [3,4], [3,5], [3,2], [3,3], [4,6], [4,7], [4,4], [4,5], [4,2], [4,3], [5,6], [5,7], [5,4], [5,5], [5,2], [5,3], [5,1], [4,1], [3,1], [2,1], [1,1]]
哇,这一切似乎让我们无处可寻!但是:
[1,1]在索引35中找到,[1,2]在索引5,[1,3]在索引6,[5,7]是索引26。换句话说,“等级”Ụ是一个电梯序列,我们完成了。
发布于 2021-06-29 06:21:07
https://codegolf.stackexchange.com/questions/230668
复制相似问题