Bulgarian Solitaire 는 Martin Gardner 가 Scientific American의 수학 칼럼에서 인기를 얻은 싱글 플레이어 게임 입니다.
당신은 N
같은 카드를 더미로 나눕니다. 당신은 각 더미에서 카드를 가져 와서 제거 된 카드로 새로운 더미를 형성합니다. 이미 본 상태에 도달 할 때까지이 프로세스를 반복하므로 계속 반복하면 루프가 반복됩니다.
예를 들어, 8
카드가 있고 더미 5
와 더미로 분리되어 있다고 가정합니다 3
. 파일 크기는 내림차순으로 작성합니다 5 3
. 게임의 대본은 다음과 같습니다.
5 3
4 2 2
3 3 1 1
4 2 2
먼저 더미를 떠나, 두 더미의 각에서 카드를 제거 4
하고 2
, 그리고 새로 만든 더미 2
제공 4 2 2
. 다음 단계에서,이 줄어드는 3 1 1
새로운 더미가 이어졌습니다 3
. 마지막으로, 마지막 단계는 크기의 더미를 비워 1
및 생산 4 2 2
우리가 중지 때문에 이미 등장하고있다.
파일 크기의 합은 동일하게 유지됩니다.
당신의 목표는 주어진 시작 구성에서 게임의 사본을 인쇄하는 것입니다. 이것은 코드 골프이므로 가장 적은 바이트가 이깁니다.
입력
초기 파일 크기를 나타내는 내림차순의 양수 목록입니다. STDIN 또는 기능 입력을 통해 입력하십시오. 원하는 목록과 같은 구조를 사용할 수 있습니다.
N
입력 한 총 카드 수를 얻지 못합니다 .
산출
불가리아 솔리테어 게임이 진행하는 더미 크기의 순서를 인쇄하십시오. 반환하지 않고 인쇄해야합니다. 각 단계는 자체 라인이어야합니다.
각 줄은의 내림차순으로 양수 시퀀스를 가져야합니다 0
. 구분 기호와 시작 및 끝 토큰 (예 :)이있을 수 있습니다 [3, 3, 1, 1]
. 숫자는 여러 자릿수를 가질 수 있으므로 어떻게 든 분리해야합니다.
반복 할 때까지 볼 수있는 파일 크기 분할을 인쇄하십시오. 따라서 첫 번째 줄은 입력이고 마지막 줄은 이전 줄의 반복이어야합니다. 다른 반복은 없어야합니다.
테스트 사례
>> [1]
1
1
>> [2]
2
1 1
2
>> [1, 1, 1, 1, 1, 1, 1]
1 1 1 1 1 1 1
7
6 1
5 2
4 2 1
3 3 1
3 2 2
3 2 1 1
4 2 1
>> [5, 3]
5 3
4 2 2
3 3 1 1
4 2 2
>> [3, 2, 1]
3 2 1
3 2 1
>> [4, 4, 3, 2, 1]
4 4 3 2 1
5 3 3 2 1
5 4 2 2 1
5 4 3 1 1
5 4 3 2
4 4 3 2 1
v$input()$
로Q
. 2. 목록을 내림차순으로 저장하면 전혀 필요하지 않습니다N
.W!}QYQ~Y]Q=Q_S+fTmtdQ]lQ;Q