Vestigium
면접 대비시간 제한20초메모리 제한1024 MB
N x N 행렬의 대각선 합을 구하고, 같은 값이 두 번 이상 나타나는 행과 열의 개수를 셉니다.
문제
Vestigium은 라틴어로 '흔적'이라는 뜻이다. 이 문제에서는 라틴 방진과 행렬의 대각합을 다룬다.
정사각 행렬의 대각합은 왼쪽 위에서 오른쪽 아래로 이어지는 주대각선에 있는 값들의 합이다.
행렬의 각 칸에 서로 다른 개의 값 중 하나가 들어 있고, 같은 행이나 같은 열에 같은 값이 반복되지 않으면 라틴 방진이다. 이 문제에서는 개의 값이 1부터 까지의 정수인 자연 라틴 방진만 다룬다.
1부터 까지의 정수만 담긴 행렬이 주어지면 대각합을 구하고, 자연 라틴 방진인지 확인한다. 자연 라틴 방진인지 여부만 답하는 대신, 같은 값이 반복되는 행의 수와 열의 수를 함께 센다.
입력
첫 줄에 테스트 케이스의 개수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 행렬의 크기 만 담긴 줄로 시작한다. 그 다음 개의 줄에 걸쳐 번째 줄마다 개의 정수 이 주어진다. 는 행렬의 행 열에 있는 정수다.
출력
각 테스트 케이스마다 Case #x: k r c 형식의 한 줄을 출력한다. 는 1부터 시작하는 테스트 케이스 번호, 는 행렬의 대각합, 은 반복되는 원소를 포함한 행의 수, 는 반복되는 원소를 포함한 열의 수다.
제한
- .
- .
- 모든 에 대해 .
힌트
예제 #1의 입력은 자연 라틴 방진이므로 반복되는 원소가 있는 행이나 열이 없다. 주대각선의 네 값이 모두 1이므로 대각합은 4다.
예제 #2에서는 모든 행과 모든 열에 반복되는 원소가 있다. 반복되는 원소가 있는 행이나 열은 몇 개의 값이 반복되는지, 몇 번 반복되는지와 상관없이 한 번만 센다. 또한 1부터 까지의 정수 중 일부는 입력에 나타나지 않을 수 있다.
예제 #3에서는 가장 왼쪽 열과 가장 오른쪽 열에 반복되는 원소가 있다.