Submeter | Todas submissőes | Melhores | Voltar |
PENTA - 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
.
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.
Exemplos
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: Teste 1 1 Teste 2 6
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
Adicionado por: | Wanderley Guimarăes |
Data: | 2006-04-29 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO NODEJS PERL6 PY_NBC SCALA TCL VB.NET |
Origem: | Olimpiada Brasileira de Informatica 2002 - Seletiva |