아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

뒤죽박죽 행 (작은 입력)

시간 제한5초메모리 제한512 MB

요약
N x N 이진 행렬에서 각 행의 가장 오른쪽 1이 대각선 이하에 오도록 행을 인접 교환으로 재배열할 때 최소 교환 횟수를 구한다.
난이도

보통10점 중 5점

유형
그리디, 정렬, 배열, 완전 탐색
정답자
아직 제출이 없습니다

문제

0과 1로 이루어진 N×NN \times N 행렬이 주어진다. 인접한 두 행은 서로 교환할 수 있다.

목표는 행렬의 모든 1을 주대각선 자리 또는 그 아래쪽에 두는 것이다. 즉 1≤X≤N1 \le X \le N인 모든 XX에 대해, XX번째 행에는 XX번째 열보다 오른쪽에 1이 하나도 없어야 한다.

목표를 이루는 데 필요한 행 교환 횟수의 최솟값을 구하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 정수 NN이 주어진다. 다음 NN개의 줄에는 각각 문자 NN개가 주어지며, 각 문자는 0 또는 1이다.

제한

  • 1≤T≤601 \le T \le 60
  • 1≤N≤81 \le N \le 8

출력

각 테스트 케이스마다 다음 형식으로 한 줄씩 출력한다.

Case #X: K

XX는 1부터 시작하는 테스트 케이스 번호이고, KK는 모든 1을 주대각선 자리 또는 그 아래쪽에 두기 위해 필요한 최소 행 교환 횟수다.

모든 테스트 케이스에는 해가 존재한다.

예제3

  1. 예제 1

    입력
    3
    2
    10
    11
    3
    001
    100
    010
    4
    1110
    1100
    1100
    1000
    
    예상 출력
    Case #1: 0
    Case #2: 2
    Case #3: 4
    
  2. 예제 2

    입력
    2
    1
    0
    1
    1
    
    예상 출력
    Case #1: 0
    Case #2: 0
    
  3. 예제 3

    입력
    3
    2
    11
    10
    2
    10
    01
    2
    00
    00
    
    예상 출력
    Case #1: 1
    Case #2: 0
    Case #3: 0