Mi escuela secundaria y muchos otros implementan un tipo de horario llamado Horario de Bloque Giratorio. Esta es una forma de que las personas tengan 8 clases, pero que tengan 6 períodos en un día escolar.
Hay cuatro días en un horario de bloque que se repiten una y otra vez, y no tienen nada que ver con los días reales de la semana. A cada uno se le asigna un número [1-4].
La forma en que funciona el programa es que la lista de todas las clases de la mañana, los períodos 1-4: [1, 2, 3, 4]. Esta es la programación para el primer día o el día 1. El resto de los días sólo gire la lista: [2, 3, 4, 1], [3, 4, 1, 2], [4, 1, 2, 3].
Sin embargo, el último período de la mañana se "cae" y no ve a ese maestro ese día. De ahí que los días son: [1, 2, 3], [2, 3, 4], [3, 4, 1], [4, 1, 2].
La tarde es el mismo, excepto que utiliza períodos 5-8en su lugar: [5, 6, 7], [6, 7, 8], [7, 8, 5], [8, 5, 6].
Tu tarea
Es difícil realizar un seguimiento de toda esta rotación, por lo que debe escribir un programa para imprimir mi horario dado qué día es como entrada. Su código tiene que colocar Homeroom and Lunch en los lugares correctos. Aquí está la salida exacta que su código debe tener para las entradas 1-4:
Homeroom Homeroom Homeroom Homeroom
Period 1 Period 2 Period 3 Period 4
Period 2 Period 3 Period 4 Period 1
Period 3 Period 4 Period 1 Period 2
Lunch Lunch Lunch Lunch
Period 5 Period 6 Period 7 Period 8
Period 6 Period 7 Period 8 Period 5
Period 7 Period 8 Period 5 Period 6
Pero espera, ¡una cosa más!
A veces, en el primer día de clases, o en otros días especiales, mi escuela tiene un "Día 0". Esto solo significa que tendré todas mis clases ese día junto con el aula y el almuerzo. Su código tendrá que lidiar con el día 0. Aquí está la salida para un día 0:
Homeroom
Period 1
Period 2
Period 3
Period 4
Lunch
Period 5
Period 6
Period 7
Period 8
Este es el código de golf, ¡el código más corto en bytes gana!
1, 2, 3, 5, 6, 7?