Submeter | Todas submissőes | Melhores | Voltar |
CHURRASC - Churrascarias da Avenida |
Existe uma avenida na cidade famosa por conter diversas churrascarias. Há N churrascarias na avenidas, numeradas de 1 a N, na ordem em que estão dispostas na avenida
Razer e seus K-1 amigos adoram comer churrasco, e decidiram que irão comer em todas as churrascarias da avenida e avaliá-las. Eles decidiram seguir o seguinte algoritmo:
- Inicialmente, cada pessoa come em uma das K primeiras churrascarias da avenida. Após comer, cada pessoa dá uma nota para a churrascaria;
- Em seguida, a pessoa que está na churrascaria 1 vai até a churrascaria K+1 e come novamente, dando também uma nota para ela ao final da refeição;
- Em seguida, a pessoa que está na churrascaria 2 vai até a churrascaria K+2, comendo nela e a avaliando;
- O processo se repete. A cada passo do processo, a pessoa que estava na churrascaria de menor número passa a comer na churrascaria de menor número ainda não visitada;
- O processo termina quando todas as churrascarias foram avaliadas.
A figura a seguir exemplifica o processo para o primeiro exemplo de entrada, onde N=5 e K=3:
A cada passo, antes de visitar a próxima churrascaria, a pessoa que está na churrascaria de menor número se comunica com as demais K-1 pessoas e obtém as notas de todas as churrascarias que estão sendo visitadas no momento. A pessoa então determina qual foi a menor nota obtida, e a informa para as demais pessoas. Sua tarefa é determinar qual foi a menor nota obtida a cada passo do algoritmo.
Entrada
A entrada consiste em vários casos de teste. Cada caso inicia com uma linha contendo dois inteiros N e K (1 ≤ K ≤ N ≤ 105), indicando o número de churrascarias e o número de pessoas no grupo. A linha seguinte contém N inteiros distintos n1, n2, ..., nN separados por espaços, onde ni (1 ≤ ni ≤ 109) é a nota obtida pela churrascaria de número i.
A entrada termina com N=K=0.
Saída
Para cada caso de teste, imprima uma linha contendo a lista das menores notas obtidas durante o processo. Os inteiros devem ser separados por um espaço, mas não deve haver um espaço após o último inteiro impresso.
Examplo
Entrada: 5 3
1 5 7 4 8
7 2
1 9 7 8 5 3 2
0 0
Saída: 1 4 4
1 7 7 5 3 2
Adicionado por: | Ricardo Oliveira [UFPR] |
Data: | 2014-06-06 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL |
Origem: | Warmup do 8o Contest Noturno |