농부 존의 소들이 재미있는 "단어 찾기" 퍼즐을 만들었다. 소들이 관심 있는 단어는 "MOO" 하나뿐이며, 이 단어는 퍼즐에서 가로, 세로, 또는 대각선 방향으로 나타날 수 있다.
소들은 알파벳의 각 글자를 서로 다른 어떤 글자로 치환하는 "치환 암호"를 사용해 퍼즐의 내용을 암호화했다. 어떤 글자도 자기 자신으로 대응되지 않으며, 두 글자가 같은 글자로 대응되는 일도 없다.
소들은 퍼즐을 복호화하는 데 필요한 치환 암호를 잃어버리고 말았다. 적절한 치환 암호를 선택했을 때 퍼즐에 존재할 수 있는 MOO의 최대 개수를 구해 소들을 도와주자.
첫째 줄에 행과 열의 수 N과 M이 주어진다(둘 다 최대 50). 다음 N개의 줄에는 각각 M개의 문자가 주어지며, 암호화된 퍼즐의 한 행을 나타낸다. 각 문자는 대문자 A..Z이다.
적절한 치환 암호로 복호화했을 때 퍼즐에 포함될 수 있는 MOO의 최대 개수를 출력한다.
moocrypt.in · 출력을 쓸 파일 moocrypt.out4 6
TAMHGI
MMQVWM
QMMQSM
HBQUMQ6Output details: Replacing "Q" with "M" and "M" with "O" reveals 6 MOOs.
riseoj 작성
출처 올림피아드 > USACO > 2014-2015 > US Open > Bronze