Em programas de computador, palavras, como “otorrinolaringologista” ou “escolaridade”, são normalmente representadas por uma cadeia de caracteres. Um prefixo de uma palavra é qualquer sequência de caracteres consecutivos que se inicia no primeiro caractere da palavra. Por exemplo, “escola” e “esco” são prefixos de “escola”, mas “cola” não é.
Um prefixo comum de duas palavras é uma cadeia de caracteres que é prefixo das duas palavras. Por exemplo, “a”, “aba” e “abaca” são exemplos de prefixos comuns das palavras “abacate” e “abacaxi”.
Dadas duas palavras, escreva um programa para calcular o comprimento do maior prefixo comum, em número de caracteres.
A primeira linha de entrada contém um inteiro , o número de caracteres da primeira palavra. A segunda linha contém uma cadeia com caracteres , a primeira palavra. A terceira linha contém um inteiro , o número de caracteres da segunda palavra. A quarta linha contém uma cadeia com caracteres , a segunda palavra.
Seu programa deve produzir uma única linha, contendo um único inteiro, o número de caracteres do maior prefixo que é comum às duas sequências.
A tarefa vale pontos. Estes pontos estão distribuídos em subtarefas, cada uma com suas restrições adicionais às definidas acima:
Seu programa pode resolver corretamente todas ou algumas das subtarefas (elas não precisam ser resolvidas em ordem). Sua pontuação final na tarefa é a soma dos pontos de todas as subtarefas resolvidas corretamente por alguma das suas submissões.
7
abacate
7
abacaxi
5
Explicação do exemplo 1: “abaca”, com 5 caracteres, é o maior prefixo comum entre “abacate” e “abacaxi”, portanto 5 é a resposta.
8
paralelo
13
paralelogramo
8
Explicação do exemplo 2: “paralelo”, com 8 caracteres, é o maior prefixo comum entre “paralelo” e “paralelogramo”, portanto 8 é a resposta.
6
escola
4
cola
0
Explicação do exemplo 3: “escola” e “cola”, não têm prefixo comum, portanto a resposta é 0.