만드는 중입니다

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

점과 상자

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

요약
완성된 사각형이 없는 도트 앤 박스 위치가 주어질 때, 사각형을 닫지 않고 둘 수 있는 최대 수를 구한 뒤 1을 더해 출력한다.
난이도

어려움10점 중 8점

유형
그래프, 동적 계획법, 조합론, 구현
정답자
아직 제출이 없습니다

문제

앨리스와 밥이 N×NN \times N 격자 위의 점으로 점과 상자 게임을 한다. 두 사람은 번갈아 한 수씩 두고, 한 수는 가로나 세로로 이웃한 두 점 가운데 아직 이어지지 않은 쌍을 선분으로 잇는 것이다. 선분 네 개가 단위 정사각형 하나를 둘러싸면 네 번째 선분을 그은 사람이 그 정사각형으로 1점을 얻는다. 그을 수 있는 선분을 모두 그으면 게임이 끝나고, 점수가 더 많은 사람이 이긴다.

오늘 두 사람은 승부에 뜻이 없어서 특별한 전략을 따르지 않는다. 점수를 얻는 수가 있어도 그 수를 두지 않고 다른 곳에 둘 수 있다. 한참을 두었는데 아직 아무도 점수를 얻지 못했다. 이대로 아무도 점수를 얻지 못하면 두 사람은 곧 지루해진다.

현재 판이 주어진다. 정사각형을 하나도 완성하지 않으면서 더 둘 수 있는 수의 최대 개수를 kk라고 하자. 그 kk수를 둔 뒤에는 남은 어떤 선분을 그어도 정사각형이 완성되므로 k+1k + 1번째 수에서 반드시 누군가 점수를 얻는다. 앨리스나 밥이 반드시 점수를 얻게 되기까지 최악의 경우 둘 수 있는 수의 개수 k+1k + 1을 구한다.

입력

첫째 줄에 격자 한 변의 점 개수 NN (2≤N≤802 \le N \le 80)이 주어진다.

다음 2N−12N - 1개 줄에는 각각 2N−12N - 1개의 문자가 주어지며, 현재 판의 상태를 행 우선 순서로 나타낸다. 행과 열의 번호는 11부터 시작한다.

  • 1≤i≤N1 \le i \le N, 1≤j≤N1 \le j \le N인 칸 (2i−1,2j−1)(2i - 1, 2j - 1)은 *이고 점 (i,j)(i, j)를 나타낸다.
  • 1≤i≤N1 \le i \le N, 1≤j≤N−11 \le j \le N - 1인 칸 (2i−1,2j)(2i - 1, 2j)는 점 (i,j)(i, j)와 점 (i,j+1)(i, j + 1)이 선분으로 이어져 있으면 -, 아니면 .이다.
  • 1≤i≤N−11 \le i \le N - 1, 1≤j≤N1 \le j \le N인 칸 (2i,2j−1)(2i, 2j - 1)은 점 (i,j)(i, j)와 점 (i+1,j)(i + 1, j)가 선분으로 이어져 있으면 |, 아니면 .이다.
  • 1≤i≤N−11 \le i \le N - 1, 1≤j≤N−11 \le j \le N - 1인 칸 (2i,2j)(2i, 2j)는 .이다.

주어진 판에는 완성된 단위 정사각형이 없다. 즉 두 사람 모두 아직 점수를 얻지 못했다.

출력

앨리스나 밥이 반드시 점수를 얻게 되기까지 최악의 경우 둘 수 있는 수의 개수를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    *-*.*
    |.|.|
    *.*-*
    |...|
    *.*.*
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2
    *.*
    ...
    *.*
    
    예상 출력
    4
    
  3. 예제 3

    입력
    4
    *-*-*.*
    |...|..
    *-*-*-*
    |.....|
    *.*.*-*
    |.....|
    *-*-*-*
    
    예상 출력
    5