🧩 N-Queen (Quantum)
시간 제한5초메모리 제한1024 MB
각 행과 열의 합이 1이고 대각선의 합이 1 이하가 되도록 실수 값을 가진 퀸을 N×N 보드에 배치하되, 고정된 칸의 값은 지켜야 한다.
문제
N-Queen 문제는 보드에 서로 공격할 수 없는 퀸 개를 배치하는 문제이다. 이 문제에서는 특별히 양자 세계에서의 N-Queen를 새롭게 정의한다. 양자 세계에서의 N-Queen 문제는 다음과 같이 정의된다.
- 보드의 각 칸에 퀸을 구간의 임의의 실수만큼 배치할 수 있다.
- 각 행에 있는 퀸의 수의 합은 반드시 이다.
- 각 열에 있는 퀸의 수의 합은 반드시 이다.
- 각 대각선에 있는 퀸의 수의 합은 이하이다.
- 보드에서 위 조건들을 만족하는 퀸의 배치를 찾아야 한다.
그러나 퀸이 없는 보드에서 이 문제를 해결하는 것은 너무 쉽다. 일부 칸에 배치 퀸의 개수가 이미 고정되어 있을 때, 퀸을 놓는 방법 한 가지를 출력해 보자.
입력
첫 번째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 보드의 크기 이 주어진다.
다음 줄부터 총 개의 줄에 걸쳐 각 줄에 개씩 총 개의 실수가 주어진다. 그 중 번째 행의 번째 열에는 해당하는 칸에 배치된 퀸의 개수를 의미하는 가 주어진다.
각 실수 는 이거나 구간의 실수이다.
- 인 경우 이는 해당하는 칸에 배치된 퀸의 개수가 고정되어 있지 않음을 의미한다.
- 구간의 실수인 경우 해당하는 칸에 배치된 퀸의 개수가 로 고정되어 있음을 의미한다. 이때 는 소수점 아래 자리까지 주어진다.
모든 테스트케이스에서 의 합은 이하이다.
출력
각 테스트 케이스에 대해, 조건을 만족하는 퀸의 배치가 존재한다면, YES를 한 줄에 출력하고 다음 줄부터 입력과 같은 형식으로 조건을 만족하는 퀸의 배치를 출력한다.
출력된 퀸의 배치는 다음 조건들을 만족해야 한다.
- 각 행에 있는 퀸의 수의 합은 이상 이하이다.
- 각 열에 있는 퀸의 수의 합은 이상 이하이다.
- 각 대각선에 있는 퀸의 수의 합은 이하이다.
- 퀸의 개수가 고정된 칸에서 출력된 퀸의 수는 와의 절대 오차가 이하이다.
단, 이미 고정된 퀸의 개수에 대해서 (오차 범위를 제외하고) 지문의 조건을 만족하는 퀸의 배치가 실제로 존재할 수 없다면, 오차 범위 내의 배치가 출력되더라도 를 받는다.
조건을 만족하는 퀸의 배치가 존재하지 않는다면, NO를 한 줄에 출력한다.