Files
problemas-para-competicao-p…/longest-common-subsequence/longest-common-subsequence.tex

43 lines
1.9 KiB
TeX

\documentclass{maratona}
\begin{document}
\begin{ProblemaAutor}{}{Maior Subsequência Comum}{1}{256}{}
O objetivo deste problema é determinar o comprimento da \textbf{maior subsequência comum} (Longest Common Subsequence - LCS) entre duas strings fornecidas.
Uma \textit{subsequência} é uma sequência que pode ser obtida a partir de uma string original removendo-se zero ou mais caracteres, sem alterar a ordem relativa dos caracteres restantes.
Dadas duas strings \( s_1 \) e \( s_2 \), deseja-se determinar \textbf{o comprimento da maior subsequência comum} e também \textbf{uma subsequência comum de comprimento máximo} presente em ambas.
\Entrada
A entrada é composta por duas linhas.
Na primeira linha, há dois inteiros \( n \) e \( m \) (\( 1 \leq n, m \leq 1000 \)), representando respectivamente os tamanhos das strings \( s_1 \) e \( s_2 \).
Na segunda linha, há duas strings \( s_1 \) e \( s_2 \), cada uma composta apenas por letras minúsculas do alfabeto, com tamanhos \( n \) e \( m \), respectivamente.
\Saida
A saída consiste em duas linhas.
Na primeira linha, deve ser impresso o comprimento da maior subsequência comum.
Na segunda linha, deve ser impressa uma subsequência comum de comprimento máximo.
\ExemploEntrada
\begin{Exemplo}
\texttt{5~3} & \texttt{3}\\
\texttt{abcde~ace} & \texttt{ace}\\
\rowcolor{gray!20}\texttt{3~3} & \texttt{3}\\
\rowcolor{gray!20}\texttt{abc~abc} & \texttt{abc}\\
\texttt{3~3} & \texttt{0}\\
\texttt{abc~hhh} & \texttt{}\\
\end{Exemplo}
\Notas
Para as strings \( s_1 = abcde \) e \( s_2 = ace \), a maior subsequência comum é "ace", que possui tamanho 3.
Para \( s_1 = abc \) e \( s_2 = abc \), ambas as strings são idênticas, logo a maior subsequência comum é "abc", que possui tamanho 3.
Para \( s_1 = abc \) e \( s_2 = hhh \), não há caracteres em comum, e portanto a maior subsequência comum é a palavra vazia, que tem tamanho 0.
\end{ProblemaAutor}
\end{document}