PPCG Claus가 선물을 전달할 수 있도록 도와주세요
개요
PPCG Claus는 요즘 선물을 전달하는 데 늦었습니다. 요즘 우리에게는 많은 이상한 꼬마들이 있기 때문입니다. 이로 인해 PPCG Claus가 모든 선물을 정확한 장소에 가져 오기가 훨씬 어렵습니다. 당신의 도전은 그가 선물을 올바르게 전달하도록 돕는 것입니다.
복잡성
배달 할 아이들을 나타내는 대문자로 된 이름 목록과 숫자로 표현 된 선물 목록이 있다면, 자녀들에게 선물을 배포하는 방법을 알아 내야합니다. 물론 캐치가 있습니다 ....
요즘 아이들이 까다로워지고 있습니다. 만약 kiddo가 이상한 사람이라면 (처음 이니셜은 ASCII 코드가 홀수입니다) 그는 이상한 선물을 원합니다! 그가 짝수 인 경우 (첫 번째 이니셜은 ASCII 코드라도 짝수 임) 분명히 짝수이어야합니다! 그러나 3으로 나눌 수있는 모든 어린이는 장난 꾸러기 장난 꾸러기이므로 PPCG Claus는 내년에 행동하게하려면 완전히 무시해야합니다. 그의 길을 성공으로 생각하기 위해서는 모든 선물을 그 가치가있는 모든 어린이들에게 전달해야하며 한 아이에게 너무 많은 선물을주지 않아야합니다. 어떤 어린이도 동료보다 선물을 3 개 이상 더 많이받는다면 내년에 장난 꾸러기 아이가 될 위험이 있습니다. 어떤 경우에도 좋은의 아이가 선물을받을 수 있었다 다른 때 좋은의 아이는, 그 또한 그 아이의 악을 설정 것하지 않았다.
예
아이들은 다음과 같습니다.
Kids = ["Amy", "Betty", "Clyde", "Dave", "Francine"] = [A,B,C,D,F] = [65,66,67,68,70]
- 베티는 인류의 약점이며, 분명히 숫자 3과 일치합니다.
- 에이미와 클라이드는 태어 났을 때 기이 한 일이었으며 심지어 선물을받는 것을 싫어했습니다.
- 데이브와 프랜신은 정상적인 아이들입니다. 그들은 심지어 선물을 받아야합니다!
선물은 다음과 같습니다.
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 Claus가 준비되어 있고 기꺼이 있다고해서 PPCG Claus가 할 수있는 것은 아닙니다. 다음은 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!.
당첨 기준 : code-golf
TL; DR : 베티는 바보입니다. 경쟁하지 마십시오.
3않습니까? 편집 : "베티 나사"해야한다면 왜 그녀는 전혀 도전에 있습니까?