Parcial Práctico 1 - Juego de cartas

Introducción al problema

En este problema se debe implementar un programa para determinar el ganador de un juego de cartas.


Descripción del problema

Un nuevo juego de cartas se está volviendo popular entre estudiantes, el juego es jugado siempre por K personas y se desarrolla de la siguiente manera:

  • Se comienza con un mazo de N cartas, el jugador 1 debe retirar la carta mayor de los extremos del mazo (arriba o abajo), luego el jugador 2 retira nuevamente la carta mayor de las dos posibilidades que queden en los extremos. Este proceso se repite hasta llegar al jugador K. Luego se vuelve a comenzar con el jugador 1.
  • El juego termina cuando se acaban las cartas del mazo. El ganador del juego es quien al finalizar el mazo de cartas consiga una suma mayor que la de los demás participantes.
  • Luego de conocer el juego, los estudiantes de estructuras de datos se percatan que el juego no tiene sentido y es posible saber quién ganará el juego dado el mazo y el número de jugadores por medio de un programa. Su tarea consiste en la construcción de este robot que permita saber el ganador de cada juego.

NOTA: En caso de existir empate en las cartas de los extremos se debe seleccionar la carta que se encuentra arriba del mazo.

La solución planteada sólo podrá hacer uso de listas encadenadas.


Entrada

La primera línea es un número T que representa la cantidad de casos de prueba.

Cada caso de prueba inicia con una línea con dos enteros N, K que representan la cantidad de cartas en el mazo y la cantidad de jugadores respectivamente.

La segunda línea de cada caso de prueba contiene N números \(P_\text{i}\) separados por espacios que representan los valores de las cartas.


Salida

Por cada caso de prueba se debe imprimir el ganador del juego, en caso de haber empate entre 2 o más jugadores, se debe imprimir todos los jugadores en empate separados por espacios y ordenados de menor a mayor.


Restricciones

  • \(0 < T < 1000\)
  • \(1 \leq N \leq 100000\)
  • \(1 \leq K \leq 100000\)
  • \(1 \leq P_\text{i} \leq 1000\)

Ejemplos


Entrada

4
4 2
1 2 3 4
4 6
1 1 1 1
6 2
2 10 3 2 1 1
2 2
1 1

Salida

Caso #1:
1
Caso #2:
1 2 3 4
Caso #3:
2
Caso #4:
1 2


Select your language