Problem L
Deterministic Finite Automata - Maximum Word Length
Languages
en
is
You are given a deterministic finite automaton that accepts the language $\mathcal{L}$. You should output the length of the longest word $w$ such that $w \in \mathcal{L}$. You may assume that $\mathcal{L}$ is non-empty.
Input
The input contains the description of a deterministic finite automaton.
The first line contains four positive integers $n$, $c$, $s$, and $f$, where $n$ is the number of states, $c$ is the size of the alphabet, $s$ is the initial state, and $f$ is the number of final states. The second line consists of a string $\Sigma = \Sigma _1\Sigma _2\dots \Sigma _c$ of $c$ distinct symbols, each of which is a lowercase english character. The third line consists of $f$ distinct positive integers, the set of final states. Then $n$ lines follow, each with $c$ positive integers, describing the symbol table. The $j$-th integer on the $i$-th of those lines represents the state transitioned to from state $i$ upon reading $\Sigma _j$.
Each state is an integer between $1$ and $n$. It is guaranteed that $1 \leq n \leq 10\, 000$, $1 \leq s \leq n$, and $0 \leq f \leq n$.
Output
Output the length of the longest word in $\mathcal{L}$.
Sample Input 1 | Sample Output 1 |
---|---|
5 2 1 1 ab 3 2 3 3 4 4 5 5 4 4 4 |
2 |
Sample Input 2 | Sample Output 2 |
---|---|
4 4 1 1 acgt 1 2 2 2 2 3 3 3 3 4 4 3 4 3 3 3 4 |
0 |