En este problema necesitarás números pseudo-aleatorios. Para generarlos, usa la fórmula donde “” denota la operación de dividir y quedarse con el residuo de la división, y es el -ésimo número pseudo-aleatorio. El número inicial (la semilla) se te dará por la entrada. Por ejemplo, si , los números que generarías serían
Se te pide que uses una secuencia de números pseudo-aleatorios para simular la tirada de un dado especial: el dado tiene caras ( no es necesariamente 6), y cada cara contiene un número (que no son necesariamente los números del al ). Para saber qué cara corresponde a un cierto número pseudo-aleatorio , deberás calcular (el resultado es un número del al ).
Una línea con el número de casos. A continuación, líneas, una por caso. Cada línea contiene, separados por espacios, el número (la semilla), el número de tiradas a efectuar, el número de caras del dado, y los números que aparecen en las caras del dado.
Para cada caso, tu programa debe escribir exactamente una línea de salida, con las tiradas del dado que se obtienen de los números hasta . Separa dos números con una coma (sin espacios) y finaliza la línea con un punto. Si tu programa no produce los números en el formato descrito, no será considerado válido.
TestA:
Resolver juegos de prueba como el del Ejemplo 1, donde se pide simular las tiradas de un único dado () de 6 caras con los números y , en este orden.
TestB:
Resolver juegos de prueba de todo tipo.
Input
1 13 20 6 1 2 3 4 5 6
Output
4,5,3,4,6,5,5,5,5,2,5,2,3,1,6,4,1,1,3,4.
Input
4 999 10 8 1 2 3 4 5 6 7 8 13 20 2 0 1 12345 20 10 0 0 0 0 0 0 0 0 0 100 31839 10 5 -5 -1 0 1 5
Output
5,3,8,5,3,2,8,2,3,7. 1,0,0,1,1,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1. 0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0. 1,-1,0,5,1,5,0,0,-1,5.