QOJ.ac

QOJ

時間限制: 1.5 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓

#18688. Putata의 역습

统计

Putata는 문자열 문제를 좋아합니다. 이제 그는 전통적인 문자열 문제를 다시 경쟁 프로그래밍에 가져왔습니다. 그의 숙적인 Budada는 모든 문자열 문제가 자명하다는 것을 증명하려고 합니다. 이제 당신은 Putata가 제안한 이 문제를 풀어 그의 주장을 증명해야 합니다.

세 개의 문자열 수열 $P, Q, R$이 주어집니다. 각각의 길이는 $n, m, k$입니다. 문자열 수열의 각 원소는 문자열입니다. 예를 들어 $P=\{\texttt{ab},\texttt{bcd}\}$이면 $P_1=\texttt{ab}$, $P_2=\texttt{bcd}$입니다. 다음 조건을 모두 만족하는 비어 있지 않은 문자열 쌍 $(A,B)$의 개수를 구하세요.

  • $\exists i\in[1,n]$, s.t. $A$는 $P_i$의 접두사(prefix)이다.
  • $\exists i\in[1,m]$, s.t. $B$는 $Q_i$의 접미사(suffix)이다.
  • $\exists i\in[1,k]$, s.t. $AB$는 $R_i$의 부분 문자열(substring)이다.

길이 $n$인 문자열 $A$가 길이 $m$인 문자열 $B$의 접두사라고 말하는 것은 $n\leq m$이고 $\forall i\in [1,n]$, $A_i=B_i$인 경우와 그 경우에만 해당합니다.

길이 $n$인 문자열 $A$가 길이 $m$인 문자열 $B$의 접미사라고 말하는 것은 $n\leq m$이고 $\forall i\in [1,n]$, $A_i=B_{m-n+i}$인 경우와 그 경우에만 해당합니다.

길이 $n$인 문자열 $A$가 길이 $m$인 문자열 $B$의 부분 문자열이라고 말하는 것은 $n\leq m$이고 $\exists j\in [0,m-n]$, s.t. $\forall i\in [1,n]$, $A_i=B_{j+i}$인 경우와 그 경우에만 해당합니다.

길이 $n$인 문자열 $A$와 길이 $m$인 문자열 $B$의 연결 $AB$는 길이 $n+m$인 문자열로, $i\in [1,n]$에 대해 $AB_{i}=A_i$이고 그 외의 경우 $AB_{i}=B_{i-n}$입니다.

두 문자열 쌍 $(A,B)$와 $(C,D)$는 $A\neq C$ 또는 $B\neq D$인 경우에만 서로 다른 것으로 간주합니다.

입력

첫 번째 줄에는 세 개의 정수 $n, m, k$ ($1\leq n,m,k\leq 3\times 10^5$)가 주어지며, 이는 수열 $P, Q, R$의 길이를 나타냅니다.

다음 $n$개의 줄 중 $i$번째 줄에는 문자열 $P_i$ ($1\leq |P_i|\leq 3\times 10^5$)가 주어집니다.

다음 $m$개의 줄 중 $i$번째 줄에는 문자열 $Q_i$ ($1\leq |Q_i|\leq 3\times 10^5$)가 주어집니다.

다음 $k$개의 줄 중 $i$번째 줄에는 문자열 $R_i$ ($1\leq |R_i|\leq 3\times 10^5$)가 주어집니다.

모든 문자열은 알파벳 소문자로만 구성되어 있음이 보장됩니다.

$\sum|P_i|, \sum|Q_i|, \sum|R_i|$가 모두 $1$ 이상 $3\times 10^5$ 이하임이 보장됩니다.

출력

정답을 나타내는 하나의 정수를 출력합니다.

예제

입력 1

1 1 1
pb
pb
ppb

출력 1

2

입력 2

2 2 2
putata
budada
oipotato
suikapredator
putato
budapredatortato

출력 2

8

입력 3

2 2 1
aba
abc
bac
bca
abcabc

출력 3

4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.