在Pickomino游戏中,桌子中间放着几块瓷砖,每块瓷砖上都有一个不同的正整数。每回合,玩家以某种方式掷骰子并获得分数,这是一个非负整数。
现在,玩家将选择仍低于或等于其分数的最高编号的图块,从中间移除图块并将其添加到堆栈中。如果由于中间的所有数字均高于玩家的分数而无法这样做,则玩家将失去其堆栈中最上面的图块(该图块最近添加),并返回中间。如果玩家没有剩余的瓷砖,则什么也不会发生。
挑战
模拟对自己玩游戏的玩家。您会在中间找到一个磁贴列表,以及一个获得的分数列表。在评估所有回合之后,返回玩家的磁贴列表。
挑战规则
- 您可以假设包含图块的列表是有序的,并且两次都不包含任何整数。
- 您可以按任意顺序获取两个输入列表
- 输出必须保持切片在堆栈上的顺序,但是您可以决定列表是从上到下还是从下到上排序。
通用规则
- 这是代码高尔夫球,因此最短答案以字节为单位。
不要让代码高尔夫球语言阻止您使用非代码高尔夫球语言发布答案。尝试针对“任何”编程语言提出尽可能简短的答案。 - 标准规则适用于具有默认I / O规则的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法以及返回类型的完整程序。
- 默认漏洞是禁止的。
- 如果可能的话,请添加一个带有测试代码的链接(即TIO)。
- 建议为您的答案添加说明。
例
(摘自第6个测试用例)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
第一个分数是22,所以取中间<= 22的最高分块,也就是22本身。
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [22, 22, 23, 21, 24, 0, 22]
下一个分数是22,因此在中间<= 22的位置获得最高的牌。由于已经取得22,因此玩家必须取得21。
Middle: [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 21]
Remaining scores: [22, 23, 21, 24, 0, 22]
下一个分数是22,但是所有<= 22的数字都已被采用。因此,玩家失去了堆叠(21)上的最上面的瓦片,该瓦片返回到中间。
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [23, 21, 24, 0, 22]
下一个得分是23、21和24,因此玩家从中间拿走了这些牌。
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
玩家破产并得分为零。因此,编号为24的图块(堆栈中的最顶部)返回到中间。
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
最后的分数是22,但是所有<= 22的图块都已被占用,因此玩家失去了堆栈中最上面的图块(21)。
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
测试用例
(最上面的图块位于输出列表的最后)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [26, 30, 21]
Output: [26, 30, 21]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [35, 35, 36, 36]
Output: [35, 34, 36, 33]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23]
Output: [23]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: []
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23, 0]
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Output: [22, 23]
Tiles: [1, 5, 9, 13, 17, 21, 26]
Scores: [6, 10, 23, 23, 23, 1, 0, 15]
Output: [5, 9, 21, 17, 13, 1]
Tiles: []
Scores: [4, 6, 1, 6]
Output: []