파일 업로드

단어 찾기 퍼즐

profile
실행 시간 제한메모리 제한
1 초256 MB
📃 해결할 문제

단어 퍼즐을 굉장히 좋아하는 학생들은 최근 재미있는 "단어 찾기" 퍼즐을 만들었습니다. 그러한 퍼즐의 예는 다음과 같습니다:

USOPEN
OOMABO
MOOMXO
PQMROM

위의 경우에 학생들에게 관심 있는 단어는 "UAA"이며, 이 단어는 단어 찾기 퍼즐에서 수평, 수직, 또는 대각선으로 여러 곳에 나타날 수 있습니다. 위의 예제에는 UAA가 여러 번 포함되어 있습니다.

선생님 역시 단어 퍼즐의 팬입니다. 학생들이 그들의 단어 찾기를 시도하기 전에 선생님이 퍼즐을 풀지 않도록 하기 위해, 그들은 알파벳의 각 글자를 다른 글자로 대체하는 "대체 암호"를 사용하여 퍼즐의 내용을 암호화했습니다. 예를 들면, A는 X로, B는 A로 바뀔 수 있습니다. 어떤 글자도 그 자신으로는 바뀌지 않으며, 두 글자가 동일한 글자로 바뀌지 않습니다(그렇지 않으면 복호화가 모호해질 수 있기 때문입니다).

불행히도, 학생들은 퍼즐을 복호화하는 데 필요한 대체 암호를 잃어버렸습니다. 적절한 대체 암호로 복호화될 경우 퍼즐에 포함될 수 있는 UAA의 최대 개수를 결정하는 데 도움을 주십시오.

💻 입력

입력의 첫 번째 줄에는 퍼즐의 행과 열의 수인 N과 M이 포함되어 있습니다(둘 다 최대 50입니다). 다음 N 줄에는 각각 M개의 문자가 있으며, 암호화된 퍼즐의 한 행을 나타냅니다. 각 문자는 A..Z 범위의 대문자입니다.

🖨️ 출력

적절한 대체 암호로 복호화될 경우 퍼즐에 포함된 UAA의 최대 개수를 출력해 주십시오.


💻 예제 입력 1
4 6
TAMHGI
MMQVWM
QMMQSM
HBQUMQ
🖨️ 예제 출력 1
6

💡 힌트

이것은 문제 설명의 시작 부분에 나오는 퍼즐이 암호가 적용된 것입니다. 여기서 "U"와 "A"는 각각 다른 문자로 대체되었습니다.


출처: USACO 2015 US Open, Bronze Problem 1. Moocryption