순열과 사이클 (최소 버전)
시간 제한2초메모리 제한2048 MB
1부터 n까지의 순열을 만들어, 인접한 두 수의 합이 x 이하이면서 사이클 개수가 최소가 되도록 구합니다.
문제
주어진 에 대해, 크기가 인 순열이 모든 에 대해 를 만족하면 좋은 순열이라고 한다. 사이클 개수가 최소인 좋은 순열을 하나 찾는다.
크기가 인 순열은 부터 까지의 서로 다른 정수 개를 나열한 수열이다.
순열 의 사이클은 , , , 을 만족하는 인덱스 수열 이다. 수열을 순환 이동한 결과만 다른 사이클은 같은 사이클로 본다.
입력
첫 줄에 테스트 케이스의 개수 ()가 주어진다. 이어서 테스트 케이스가 주어진다.
각 테스트 케이스는 한 줄에 두 정수 ()과 ()로 주어진다. 이 조건에서는 좋은 순열이 적어도 하나 존재한다.
모든 테스트 케이스의 합은 을 넘지 않는다.
출력
각 테스트 케이스마다 두 줄을 출력한다. 첫 줄에는 길이 인 좋은 순열의 사이클 개수 최솟값을 출력한다. 둘째 줄에는 순열의 개 정수를 출력한다. 답이 여러 개라면 그중 아무거나 하나를 출력해도 된다.