Penta!
O técnico Luiz Felipe Scolari (Felipão) foi um dos
grandes responsáveis pela conquista do quinto título
brasileiro na Copa do Mundo. Contrariando muitos críticos,
alterou o esquema tático do time, apostou em jogadores que
não tinham garantida uma boa condição
física para o torneio, e administrou com um misto de rigor e
paternalismo as personalidades muitas vezes difíceis dos
jogadores. Estrategista competente, Felipão planejou meticulosa
e longamente toda a campanha.
Felipão planejou até mesmo o desfile em carro aberto do
Corpo de Bombeiros, na volta da seleção ao
país. Tendo recebido a informação que o local
mais alto do carro possibilitava apenas a permanência de um
número limitado de jogadores, e sabendo que os jogadores iriam
querer estar o maior tempo possível no palanque, Felipão
determinou, para cada quarteirão do percurso, qual jogador
necessariamente deveria estar presente no palanque. No primeiro
quarteirão Beletti deveria estar presente no palanque, no
segundo quarteirão Cafu, no terceiro quarteirão
Denílson, no quarto Edmilson, e assim por diante. No entanto,
ele não determinou qual jogador presente ao palanque deveria
descer para dar lugar ao novo jogador, quando o palanque estivesse com
sua lotação máxima. Como subir e descer do
palanque é cansativo (e mesmo um tanto arriscado, considerando
a altura), os jogadores decidiram procurar a sua ajuda para descobrir
como obedecer às ordens do técnico quanto à
permanência do jogador no palanque no momento estipulado, mas de
forma a minimizar a troca de jogadores no palanque.
Tarefa
Com o dinheiro recebido como prêmio pela conquista da Copa do
Mundo os jogadores decidiram contratar os seus
serviços. Você deve escrever um programa que determine o
número mínimo de trocas de jogadores no palanque,
conhecendo a lista formulada por Felipão.
Considere que inicialmente o palanque está vazio, e,
até chegar à sua lotação máxima, um
novo jogador sobe sem que nenhum outro desça (ou seja,
não ocorre troca). Quando o palanque está com
lotação máxima, antes que um jogador possa subir
um outro deve descer (caracterizando uma troca). Os jogadores sempre
desejam permanecer no palanque o maior tempo possível (ou seja,
nenhum desce sem que haja necessidade de um novo jogador ascender ao
palanque).
Entrada
A entrada é composta de vários conjuntos de teste. A
primeira linha de um conjunto de teste contém dois
números inteiros N e P, que indicam respectivamente o
número de quarteirões do trajeto e o número de
jogadores que cabem simultaneamente no palanque do Carro de
Bombeiros. Os jogadores são identificados por inteiros de 1 a
23. As N linhas seguintes contêm cada uma um inteiro positivo J,
indicando o jogador que deve estar presente no palanque no
N-ésimo quarteirão do trajeto. O final da entrada
é indicado quando N = P = 0.
Exemplo de Entrada
4 2
1
2
3
1
13 3
10
23
10
11
7
8
23
11
9
10
5
7
11
0 0
Saída
Para cada conjunto de teste da entrada seu programa deve produzir
três linhas. A primeira linha identifica o conjunto de teste, no
formato "Teste n", onde n é numerado a partir de 1. A
segunda linha deve conter o número mínimo de trocas de
jogadores, conforme determinado pelo seu programa. A terceira linha
deve ser deixada em branco. A grafia mostrada no Exemplo de
Saída, abaixo, deve ser seguida rigorosamente.
Exemplo de Saída
Teste 1
1
Teste 2
6
(esta saída corresponde ao exemplo de entrada acima)
Restrições
0 ≤ N ≤ 10000 (N = 0 apenas para indicar o fim da entrada)
0 ≤ P ≤ N (P = 0 apenas para indicar o fim da entrada)
1 ≤ J ≤ 23
|