아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

만칼라

시간 제한1초메모리 제한256 MB

요약
구슬 수 N마다 모든 구슬을 룸바에 모으는 유일한 촐카일론 보드의 각 구멍 값을 구해 출력합니다.
난이도

보통10점 중 7점

유형
수학, 시뮬레이션, 게임 이론
정답자
아직 제출이 없습니다

문제

만칼라는 보드 게임의 한 종류이고 변형 규칙이 여러 가지 있다. 여기서는 그중 가장 단순한 1인용 만칼라 Tchoukaillon을 다룬다.

Tchoukaillon은 칸이 한 줄로 늘어선 보드에서 진행한다. 가장 왼쪽 칸은 Roumba이고, 처음에 Roumba는 비어 있어야 한다. Roumba 오른쪽 칸에는 왼쪽부터 1번, 2번, 3번, ... 이라는 번호를 붙이고, kk번 칸에 들어 있는 구슬의 개수를 bkb_k라고 쓴다.

한 차례는 다음 순서로 진행한다.

  1. bk=kb_k = k인 칸 kk를 하나 찾는다. 그런 칸이 여러 개면 아무거나 골라도 된다.
  2. 고른 칸을 비우고, 꺼낸 구슬 kk개를 Roumba와 1번부터 k−1k - 1번 칸에 하나씩 나누어 담는다.

보드에 구슬이 남아 있는데 bk=kb_k = k인 칸이 하나도 없으면 그 판은 패배이다. 위 그림의 첫 줄은 3번 칸을 고른 상황이다.

차례를 반복해서 구슬이 모두 Roumba로 들어가면 그 판은 승리한다. 이렇게 승리할 수 있는 초기 상태를 승리하는 게임판이라고 한다. 구슬의 총 개수 NN을 정하면 승리하는 게임판은 항상 유일하다. 구슬이 4개일 때 유일한 승리하는 게임판은 b1=0b_1 = 0, b2=1b_2 = 1, b3=3b_3 = 3이다.

구슬의 총 개수 NN이 주어지면 승리하는 게임판을 구하라.

입력

첫 줄에 테스트 케이스의 수 PP가 주어진다. (1≤P≤10001 \le P \le 1000)

이어서 PP개의 줄에 테스트 케이스가 한 줄씩 주어진다. 각 줄에는 테스트 케이스의 번호 TT와 보드에 놓을 구슬의 총 개수 NN이 공백으로 구분되어 주어진다. (1≤T≤P1 \le T \le P, 1≤N≤21171 \le N \le 2117)

NN의 상한 2117은 승리하는 게임판의 마지막 칸 번호가 80을 넘지 않는 가장 큰 값이다.

출력

각 테스트 케이스마다 먼저 테스트 케이스의 번호 TT와, 구슬이 하나 이상 들어 있는 칸 중 가장 오른쪽 칸의 번호 BB를 한 줄에 출력한다.

그다음 줄부터 승리하는 게임판의 b1b_1부터 bBb_B까지를 순서대로 출력한다. 한 줄에 10개씩 공백으로 구분해 출력하고, 마지막 줄에는 남은 개수만 출력한다.

모든 테스트 케이스에서 BB는 80을 넘지 않는다.

예제2

  1. 예제 1

    입력
    3
    1 4
    2 57
    3 500
    
    예상 출력
    1 3
    0 1 3
    2 12
    1 2 2 2 2 6 2 4 6 8
    10 12
    3 39
    0 2 2 1 3 2 2 2 6 7
    5 0 6 12 2 6 10 14 18 1
    3 5 7 9 11 13 15 17 19 21
    23 25 27 29 31 33 35 37 39
    
  2. 예제 2

    입력
    4
    1 1
    2 2
    3 3
    4 6
    
    예상 출력
    1 1
    1
    2 2
    0 2
    3 2
    1 2
    4 4
    0 0 2 4