얼룩
면접 대비시간 제한1초메모리 제한1024 MB
얼룩 격자와 스티커 격자가 주어질 때, 스티커를 90도 단위로 회전하고 자유롭게 옮겨 가릴 수 없는 얼룩 칸의 최솟값을 구합니다.
문제
Mirko가 공책에 코코아를 쏟아서 앞표지 한가운데에 얼룩이 생겼다. Mirko는 이 얼룩을 스티커로 가리려고 한다. 얼룩과 스티커 모두 모양이 불규칙해서, Mirko가 얼룩 전체를 가리지 못할 수도 있다.
얼룩은 표지의 가운데를 나타내는 가상의 표에서 #으로 표시된 칸들의 집합으로 주어진다. 스티커도 같은 방식으로, 크기가 같은 가상의 표에서 #으로 표시된 칸들의 집합으로 주어진다. 아래 보기를 참고하면 이해하기 쉽다.
Mirko는 다음을 할 수 있다.
- 스티커를 90°의 배수만큼 회전할 수 있다. 뒤집지는 않는다.
- 얼룩을 최대한 많이 가리도록 스티커를 임의의 방향으로 옮길 수 있다.
첫 번째 가능성은 Mirko가 스티커를 표지에 대해 네 가지 서로 다른 모양으로 놓을 수 있다는 뜻이다. 두 번째 가능성은 스티커가 얼룩을 나타내는 표 바깥으로 나갈 수 있다는 뜻이다.
스티커로 얼룩을 덮은 뒤, 스티커 아래에 보이는 얼룩 부분의 최소 개수를 구하는 프로그램을 작성하라. 얼룩을 완전히 가릴 수 있다면 답은 0이다.

그림은 세 번째 예의 상황이다. 왼쪽이 얼룩, 가운데가 스티커이다. 스티커를 시계 방향으로 90° 돌린 뒤, 얼룩의 오른쪽 위 한 부분만 남기고 나머지를 모두 가리도록 옮긴 모습을 오른쪽에 나타냈다.
입력
첫 줄에 표의 크기를 나타내는 정수 N (1 N 10)이 주어진다.
이어지는 N줄에는 얼룩을 나타내는 N글자의 문자열이 공백 없이 한 줄씩 주어진다. #은 얼룩 칸, .은 빈 칸을 뜻한다.
빈 줄 다음에 같은 형식으로 스티커를 나타내는 N줄이 주어진다.
얼룩의 칸들은 서로 연결되어 있어서 여러 조각으로 나뉘지 않는다. 스티커도 마찬가지다.
출력
첫 번째이자 유일한 줄에 문제에서 구하는 수를 출력한다.
힌트
첫 번째 테스트 케이스에서는 얼룩과 회전한 스티커가 정확히 같아서 완벽하게 겹칠 수 있다.
두 번째 테스트 케이스에서는 스티커를 어떻게 놓아도 얼룩의 적어도 한 부분은 가려지지 않은 채 남는다.
세 번째 테스트 케이스는 문제의 그림과 같다.