Osmosmjerka
시간 제한4초메모리 제한256 MB
글자 블록을 모든 방향으로 무한히 반복한 격자에서 시작 칸과 8방향 중 하나를 무작위로 골라 길이 K인 단어를 두 번 읽을 때, 두 단어가 같을 확률을 기약분수로 구한다.
문제
행 열 크기의 문자 블록을 사방으로 무한히 이어 붙이면 팔방 낱말 찾기 판이 된다. 예를 들어 블록이 다음과 같다면
honi
hsin
판은 이렇게 만들어지고, 위아래로도 좌우로도 끝없이 이어진다.
...honihonihonihoni...
...hsinhsinhsinhsin...
...honihonihonihoni...
...hsinhsinhsinhsin...
이 판에서 칸 하나와 여덟 방향 중 하나를 무작위로 고른다. 고른 칸에서 출발해 고른 방향으로 한 칸씩 나아가며 글자 개를 읽으면 길이 인 단어를 얻는다. 판은 블록 하나를 반복한 것이라 판의 모든 칸이 블록의 어느 한 칸과 같으므로, 시작 칸을 고르는 것은 블록의 개 칸에서 하나를 균등하게 뽑는 것과 같다. 방향도 여덟 가지에서 균등하게 뽑는다.
이 시행을 서로 독립으로 두 번 했을 때 얻은 단어 두 개가 같을 확률을 구하시오.
입력
첫째 줄에 정수 , , 가 주어진다. (, )
다음 개 줄에는 각각 영어 소문자 개가 주어지며, 블록의 한 행을 나타낸다. 블록에는 서로 다른 글자가 적어도 두 개 있다.
출력
확률을 기약분수 p/q 꼴로 공백 없이 출력한다.