시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB170502427.273%

문제

자연수 $K$가 주어진다. 길이가 34 이하이면서 증가하는 부분 수열의 개수가 정확히 $K$개인 수열을 만드는 프로그램을 작성하자.

증가하는 부분 수열이 무엇인지 잘 모르는 친구들은 친절한 동원이가 준비한 아래 정의를 읽어보도록 하자.

  • 부분 수열이란 주어진 수열에서 1개 이상의 원소를 골라 원래 순서대로 나열하여 얻은 수열을 말한다.
  • 증가하는 부분 수열이란 맨 처음 원소를 제외한 모든 원소가 바로 전 원소보다 큰 수열을 말한다. 다시 말해 길이가 $N$인 부분 수열 $A$가 있을 때, $A_{i-1} < A_i$ ($2 \le i \le N$) 를 만족하면 $A$는 증가하는 부분 수열이다.

동원이는 위 정의에 따라 길이가 $1$인 부분 수열은 항상 증가하는 부분 수열임에 주의하면 좋겠다는 메모를 추신으로 남겼다.

입력

첫째 줄에 테스트 케이스의 개수 $T$가 주어진다.

각 테스트 케이스마다, 만들어야 하는 수열의 증가하는 부분 수열의 개수를 나타내는 $K$가 주어진다.

출력

각 테스트 케이스에 대해 아래와 같이 두 줄로 구성된 답안을 출력한다.

첫째 줄에는 만든 수열의 길이 $N$을 출력한다. $N$은 $34$ 이하의 양의 정수여야 한다.

둘째 줄에는 만든 수열의 각 원소를 차례대로 공백으로 구분하여 출력한다. 수열의 각 원소는 $10^9$ 이하의 양의 정수여야 한다.

가능한 답안이 여러 가지 있으면 아무거나 출력해도 된다.

제한

  • $1 \leq T \leq 10\,000$
  • $1 \leq K < 262\,144 = 2^{18}$

점수

출력한 $N$의 최댓값이 점수이다.

예제 입력 1

2
5
17

예제 출력 1

5
1 1 1 1 1
5
1 2 2 4 3

출처

채점 및 기타 정보

  • 26점 이하를 획득해야 를 받는다.
  • 맞힌 사람의 정렬 기준은 점수의 오름차순이다.