O pannenkoek2012 tem como objetivo completar o Super Mario 64 com o menor número possível de pressionamentos do botão A, o que faz Mario pular. Cada "A press" consiste em três partes:
- Pressionando o botão
- Segurando-o por qualquer período de tempo
- Liberando-o
Veja este vídeo (1:15 - 3:23) para uma ótima explicação que inclui a imagem acima. (No entanto, esse desafio não usará a terminologia de meia imprensa e colocará obstáculos que exigem a liberação de A.)
Tarefa:
Dada uma sequência de obstáculos que exigem pressionar (P), segurar (H) ou soltar (R) o botão A, produz o menor número de pressionamentos necessários para superá-los na ordem indicada. O botão A inicialmente não está pressionado.
Declarado formalmente: dada uma sequência S de caracteres PHR
, considere as sequências de forma (PH*R)*
que contenham S como uma subsequência e produza o menor número possível de P
s nessa sequência. Ou, como alternativa, encontre o menor número de pedaços da forma em P?H*R?
que S pode ser dividido.
Exemplo
Vamos dar uma olhada na entrada RHRPHHHR
. O botão A começa a não R
ser pressionado ; portanto, para superar o obstáculo inicial, é necessário pressionar e soltar o botão (pressione # 1). Em seguida, é necessário manter o botão pressionado H
, o que novamente exige que ele seja pressionado primeiro (pressione # 2). Em seguida, ele pode ser liberado posteriormente para satisfazer o R
depois. Por fim, o restante PHHHR
pode ser satisfeito com uma única pressão (pressione # 3) seguida de segurar HHH
e soltarR
. Portanto, a contagem de saída é 3.
Outra maneira de ver isso é que podemos dividir a string de entrada em 3 partes do formulário, PHH..HHR
onde as letras podem ser omitidas.
R
HR
PHHHR
Formato de entrada
A entrada será uma lista ou sequência de elementos que representam pressionar, segurar e liberar como sua escolha:
P, H, R
p, h, r
1, 2, 3
0, 1, 2
correspondido na ordem indicada. A entrada não estará vazia.
Casos de teste:
P 1
H 1
R 1
HP 2
RHP 3
HHR 1
PHRH 2
RHRPHHHR 3
HHHHHH 1
PPRRHHPP 6
HPPRHRPRHPPRHPPHRP 12
PRHRHPHHPRRRHPPRHHPPRRRHRHPRPHPRPRHHRPPPRHPRP 28
Entre os melhores: