아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

기차

시간 제한1초메모리 제한128 MB

요약
n개 객차 문자열의 n!가지 순서마다 이어 붙인 문자열이 t에 등장하는 횟수를 합산합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 문자열 매칭, 조합론
정답자
아직 제출이 없습니다

문제

꼬마 야쿠시는 엄마에게서 nn개의 객차로 이루어진 장난감 기차를 받았습니다. 각 객차의 뒷면에는 영어 소문자로 이루어진 일련번호가 적혀 있습니다.

야쿠시는 이 nn개의 객차를 원하는 순서로 늘어놓아 기차를 만들 수 있습니다(항상 nn개의 객차를 모두 사용합니다). 객차들의 일련번호를 왼쪽부터 차례로 이어 읽으면 하나의 문자열 ww가 만들어집니다.

야쿠시는 엄마에게 종이에 문자열 tt를 적어 달라고 했습니다. 그는 각 순서로 만든 문자열 ww를 패턴으로 삼아 tt 안에서 찾으려고 합니다. 객차를 늘어놓는 모든 n!n!가지 순서에 대해, 그 순서로 만든 패턴 ww가 tt에 나타나는 횟수를 모두 더한 값을 구하세요.

서로 다른 시작 위치라면 겹쳐서 나타나도 각각 한 번씩 셉니다. 객차는 서로 다른 물체이므로, 일련번호가 같은 객차가 있더라도 각 순서(순열)는 따로 셉니다.

입력

첫째 줄에 정수 nn (1≤n<101 \le n < 10)이 주어집니다. 이어지는 nn개의 줄에는 ii번째 객차의 일련번호 wiw_i가 주어지며, 각 일련번호는 길이가 10510^5 이하인 비어 있지 않은 영어 소문자 문자열입니다. 그다음 줄에는 문자열 tt가 주어지며, 길이는 10610^6 이하인 영어 소문자 문자열입니다.

출력

모든 n!n!가지 순서로 만든 패턴들이 tt에 나타나는 횟수의 총합을 정수 하나로 출력하세요.

예제3

  1. 예제 1

    입력
    2
    ala
    ma
    alamaalama
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1
    aa
    aaaaa
    
    예상 출력
    4
    
  3. 예제 3

    입력
    2
    a
    a
    aa
    
    예상 출력
    2