만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도로 그래프 연결하기

시간 제한2초메모리 제한128 MB

요약
인접 행렬이 주어질 때, 그래프를 완전히 연결시키는 데 필요한 최소 엣지 교환 횟수를 구하거나 불가능하면 -1을 출력합니다.
난이도

보통10점 중 5점

유형
그래프, 유니온 파인드, 수학
정답자
아직 제출이 없습니다

문제

N개의 도시가 있는 나라가 있다. 몇몇 도시 쌍은 양방향 도로로 연결되어 있다. 은진이는 도로 몇 개를 수정해서 모든 도시가 서로 연결되도록 만들고 싶다. 이때 도로를 수정하는 횟수를 최소로 하려고 한다.

도로 한 번의 수정은 다음과 같이 한다.

  1. A와 B가 도로로 연결되어 있고, C와 D도 도로로 연결되어 있으며, A-C, A-D, B-C, B-D 사이에는 도로가 없는 네 도시 A, B, C, D를 고른다.
  2. A-B 도로와 C-D 도로를 없앤다.
  3. A-C와 B-D를 연결하거나, A-D와 B-C를 연결한다.

N과 도로 정보가 주어졌을 때, 필요한 도로 수정 횟수의 최솟값을 구하라.

입력

첫째 줄에 N이 주어진다. N은 50 이하인 자연수이다.

둘째 줄부터 N개의 줄에 도로 정보가 인접 행렬 형태로 주어진다. i행 j열의 문자가 Y이면 도시 i와 도시 j가 도로로 연결되어 있고, N이면 연결되어 있지 않다. 행렬은 대칭이므로 g[i][j] = g[j][i]이고, 모든 대각 원소는 N이다.

출력

도로 수정 횟수의 최솟값을 출력한다. 불가능하면 -1을 출력한다.

예제5

  1. 예제 1

    입력
    5
    NYYNN
    YNYNN
    YYNNN
    NNNNY
    NNNYN
    
    예상 출력
    1
    
  2. 예제 2

    입력
    2
    NY
    YN
    
    예상 출력
    0
    
  3. 예제 3

    입력
    7
    NYYNNNN
    YNYNNNN
    YYNNNNN
    NNNNYYN
    NNNYNYY
    NNNYYNY
    NNNNYYN
    
    예상 출력
    1
    
  4. 예제 4

    입력
    12
    NYNYNNNNNNNN
    YNYNNNNNNNNN
    NYNYYNNNNNNN
    YNYNNNNNNNNN
    NNYNNYYNNNNN
    NNNNYNYNNNNN
    NNNNYYNNNNNN
    NNNNNNNNYYNN
    NNNNNNNYNYNN
    NNNNNNNYYNNN
    NNNNNNNNNNNY
    NNNNNNNNNNYN
    
    예상 출력
    2
    
  5. 예제 5

    입력
    6
    NYNNNN
    YNYNNN
    NYNYNN
    NNYNNN
    NNNNNY
    NNNNYN
    
    예상 출력
    -1