帮助PPCG克劳斯送礼物
总览
PPCG克劳斯迟迟没有送出礼物,因为如今我们有那么多奇怪的小孩。这使PPCG Claus很难将所有礼物送到正确的地方。您面临的挑战是帮助他正确地处理礼物。
复杂性
给定一个表示要送达的孩子的大写名字列表和一个用数字表示的礼物列表,您必须弄清楚如何在这些孩子之间分配礼物。当然有一个陷阱...
如今,孩子们变得挑剔,如果孩子是个奇怪的家伙(第一个名字的首字母是ASCII码是奇数),他就想要一个奇怪的礼物!如果他是个偶人(第一个名字的首字母是ASCII码),那么显然他必须被赋予偶数!但是,任何可被3整除的孩子都是顽皮的,顽皮的小伙子,因此PPCG克劳斯必须完全无视他们,才能在明年表现出来。为了使他的路线成功,他必须将所有礼物送给所有应得的孩子,并且不能给任何一个孩子太多礼物。如果有任何一个孩子比同龄人获得的礼物多3倍以上,他明年就有成为顽皮孩子的风险,那是不对的!此外,如果有好的孩子都收到礼物时,另一个很好的孩子没有,这也将反过来说孩子的罪恶。
例
孩子们如下:
Kids = ["Amy", "Betty", "Clyde", "Dave", "Francine"] = [A,B,C,D,F] = [65,66,67,68,70]
- 贝蒂(Betty)是人类的祸根,显然是数字3。
- 艾米(Amy)和克莱德(Clyde)自出生以来就是怪胎,甚至不愿收到礼物。
- 即使是孩子,戴夫(Dave)和弗朗辛(Francine)都很正常。他们应该只收到礼物!
礼物如下:
Presents = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
一种可能的输出是:
[
['Amy',[1,3,5]],
['Betty',[]],
['Clyde',[7,9,11,13]],
['Dave',[2,4,6,8]],
['Francine',[10,12,14]]
]
例外情况
但是,仅仅因为PPCG克劳斯已经准备好并且愿意,并不意味着PPCG克劳斯可以。以下是一些例外情况的列表,在这些情况下,您必须使用以下消息将坏消息告知PPCG Claus:
PPCGmas is cancelled!
以下情况将导致圣诞节被取消:
- 没有孩子。
[],[1,2,3]
-威尔普,他们死了。
- 没有好孩子。
["Betty"],[1,2,3]
-认真地,拧贝蒂。
- 没有礼物,或者礼物少于好孩子。
["Amy","Charles"],[]
-一个或多个不会收到礼物。["Amy","Charles"],[1]
-一个或多个不会收到礼物。
- 没有奇数/偶数礼物可以满足所有好的孩子。
["Amy","Dave"],[2,4,6]
-艾米被搞砸了。
这是不应该影响PPCGmas的方案列表:
- 剩余的礼物(所有孩子都应获得最大数量的礼物)。
["Amy","Dave"],[2,4,6,8,10,12,14,7,9] = [["Amy",[7,9]],["Dave",[2,4,6,8]]]
重申主要规则
- 根据他们的第一个名字首字母,好孩子是偶数还是奇数。
- 坏孩子的首字母缩写可以被3整除。
- 所有好孩子都必须至少收到一份礼物。
- 没有一个好孩子比任何其他好孩子收到的礼物多于2个。
- 如果有剩余的礼物,则必须最大限度地分发它们,不要违反4。
- 坏孩子一定不能收到任何礼物。
- 如果违反了任何一个,则必须精确输出
PPCGmas is cancelled!
。
I / O格式要求
- 第一个输入必须是全名的数组/列表/逗号分隔的字符串,而不仅仅是第一个首字母。
- 第二个输入必须是一个由数组/列表/逗号分隔的正整数字符串。
- 输出可能是有意义的礼物分配方式;或
PPCGmas is Cancelled!
。
获奖标准:代码高尔夫
TL; DR:贝蒂是个混蛋,不要竞争。
3
?编辑:如果一个人应该“拧贝蒂”,她为什么要面对挑战呢?