여덟 퀸으로 부족할 때, N 퀸
시간 제한1초메모리 제한128 MB
각 테스트 케이스마다 N개 퀸이 서로 공격하지 않게 N행 N열 보드에 놓는 사전 순 최소 배치를 출력합니다.
문제
여덟 퀸 퍼즐은 8x8 판 위에 퀸 여덟 개를 서로 공격하지 않게 놓는 문제다. N 퀸 문제는 NxN 판과 퀸 N개로 같은 것을 묻는다.
두 퀸은 같은 행에 있거나, 같은 열에 있거나, 같은 대각선 위에 있으면 서로 공격한다. 행과 열에는 부터 번호를 매긴다. 과 에 놓인 두 퀸이 같은 대각선 위에 있다는 것은 이거나 라는 뜻이다.
올바른 배치에는 행마다 퀸이 정확히 하나, 열마다도 정확히 하나 놓인다. 그래서 배치는 벡터 로 적는다. 는 번 행에 놓인 퀸의 열 번호이고, 이 벡터는 부터 까지의 순열이다.
이면 올바른 배치가 둘 이상이므로, 답은 사전순으로 가장 작은 벡터 하나로 정한다. 두 벡터를 비교할 때는 번 자리부터 훑으면서 값이 처음 달라지는 자리를 찾고, 그 자리의 값이 작은 쪽이 사전순으로 더 작다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다 (). 다음 개의 줄에는 각각 정수 이 하나씩 주어진다 ().
출력
테스트 케이스마다 주어진 순서대로 두 줄씩 출력한다. 첫 줄에는 을 출력한다. 둘째 줄에는 그 판에서 사전순으로 가장 작은 벡터, 즉 열 번호 을 공백 하나로 구분해 출력한다.