만드는 중입니다

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

크로스워드

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

요약
서로 다른 단어 4개로 가로 2개와 세로 2개가 교차하는 십자말풀이를 만들 때, 겹쳐서 같아지는 배치는 하나로 보고 경우의 수를 구합니다.
난이도

보통10점 중 5점

유형
완전 탐색, 문자열, 구현
정답자
아직 제출이 없습니다

문제

살라만더는 자신의 생물들을 매우 아낀다. 그래서 생물들이 가방 안에서 지루하지 않도록 하고 싶어 한다. 그는 생물마다 크로스워드를 하나씩 주려고 한다. 생물이 많아서 크로스워드도 충분히 많이 필요하다. 간단하게 하기 위해 각 크로스워드는 정확히 4개의 단어로 이루어진다. 세로 단어 2개와 가로 단어 2개이며, 서로 4번 교차한다. 교차점 4개가 직사각형을 이루며, 그 넓이는 0일 수도 있다.

살라만더는 새 크로스워드에 쓸 서로 다른 단어 4개를 이미 만들었다. 이제 이 단어들로 만들 수 있는 서로 다른 크로스워드의 개수를 알고 싶어 한다. 두 크로스워드는 겹쳐 놓았을 때 완전히 일치할 수 없다면 서로 다른 것으로 본다. 그 방법의 수를 구하는 것을 돕자.

입력

살라만더가 만든 i번째 단어 wiw_i가 i번째 줄(총 4줄)에 주어진다. (2≤∣wi∣≤302 \le |w_i| \le 30) 모든 단어는 영어 소문자로만 이루어져 있으며, 네 단어는 모두 서로 다르다고 보장된다.

출력

주어진 단어로 크로스워드를 만드는 방법의 수를 한 줄에 출력한다. 가로 단어는 왼쪽에서 오른쪽으로, 세로 단어는 위에서 아래로 쓴다.

힌트

가능한 크로스워드 두 개가 그림으로 나와 있다.

예제1

  1. 예제 1

    입력
    internet
    ifmo
    rampage
    olympiad
    
    예상 출력
    2