당신은이 지역에서 가장 유명하고 유명한 영웅입니다. 최근에 이드 라 가 근처 계곡에서 놀고 있다는 소문 이있었습니다. 당신이 당신의 용감하고 고결한 영웅이기 때문에 오늘 나중에 언젠가 그것을 확인할 것입니다.
수국의 문제는 머리를자를 때마다 새로운 머리가 자라는 것입니다. 운 좋게도 여러 머리를 한 번에 잘라낼 수있는 칼이 있습니다. 그러나 히드라가 칼로 자르는 것보다 머리가 적 으면 히드라를 공격 할 수 없습니다. 히드라의 머리가 정확히 제로가되면 당신은 그것을 죽였습니다.
히드라의 머리 절반을 깎을 수 있는 이등분 이라는 특수한 칼도 있지만 머리 수는 짝수입니다. 헤드 수가 홀수이면 이등분선 을 전혀 사용할 수 없습니다 . 이것은 제로 헤드를 절단하는 것과 다릅니다.
그래서 당신은 hydra를 죽이는 가장 좋은 방법을 알아 내기 위해 컴퓨터 프로그램을 작성하기로 결정했습니다.
직무
당신은 입력으로 제공됩니다
- Hydra가 시작하는 헤드 수
- Hydra가 매 턴마다 자라는 헤드 수
- 각각 사용할 수있는 칼 목록 (각각 이등분선이거나 각 턴마다 고정 된 수의 머리를 자름)
최소한의 턴으로 히드라를 죽일 수있는 동작 목록을 출력해야합니다. 히드라를 죽일 방법이 없다면 다른 값을 출력해야합니다 (언어가 강력하게 입력되면 빈 목록이 좋습니다). 히드라를 죽이는 여러 가지 최적의 방법이 있다면 그중 하나 또는 전부를 출력 할 수 있습니다.
이것은 코드 골프 질문이므로 바이트 수가 적을수록 답이 바이트로 표시됩니다.
테스트 사례
요청에 따라 더 이용 가능
5 heads, 9 each turn, [-1,-2,-5] -> [-5]
12 heads, 1 each turn, [/2,-1] -> No solution
8 heads, 2 each turn, [-9, -1] -> [-1,-9]
3 heads, 23 each turn, [/2,-1,-26] -> [-1,-1,-26,-26,-26,-26,-26,-26,-26,-26]
16 heads, 1 each turn, [/2, 4, 2] -> [/2,-4,/2,-4]
이 질문은 HydraSlayer 의 주요 메커니즘의 단순화 된 버전입니다 . 이 유형의 퍼즐을 좋아한다면 체크 아웃하는 것이 좋습니다. 게임과 관련이 없습니다.
[/2, -2, /2, -2, -4]
작동합니다.