시간 제한
메모리 제한
시간 제한
5초
메모리 제한
128 MB
형택이는 N개의 사탕 봉지를 가지고 있다. i번째 봉지에는 사탕이 정확히 i개 들어 있으며, 1 <= i <= N이다.
형택이는 이 봉지들 중 일부만 남기려고 한다. 남겨 둔 봉지들은 다음 조건을 만족해야 한다. 선택한 서로 다른 두 봉지의 사탕 수를 더했을 때, 그 합과 같은 개수의 사탕이 들어 있는 다른 선택된 봉지가 있으면 안 된다.
이 조건을 만족하면서 최대한 많은 봉지를 고르려고 한다. 가능한 최대 봉지 수 K, 그 최대 개수를 달성하는 선택 방법의 수 A, 그리고 모든 최대 선택 방법을 출력하는 프로그램을 작성하시오.
첫째 줄에 테스트 케이스의 개수 D가 주어진다. (1 <= D <= 100)
다음 D개의 줄에는 각 테스트 케이스의 정수 N이 하나씩 주어진다. (1 <= N <= 1,000,000)
각 테스트 케이스마다 먼저 한 줄에 선택할 수 있는 최대 봉지 수 K와 가능한 최대 선택 방법의 수 A를 공백으로 구분해 출력한다.
이어서 A개의 줄에 최대 선택 방법을 하나씩 출력한다. 각 줄에는 선택한 K개의 정수를 오름차순으로 공백으로 구분해 출력한다. 여러 선택 방법은 정수열로 보았을 때 사전순으로 출력해야 한다.