Meine High School und viele andere implementieren eine Art Zeitplan, der als Rotating Block Schedule bezeichnet wird. Dies ist eine Möglichkeit für Menschen, 8 Klassen zu haben, aber 6 Stunden an einem Schultag.
Es gibt vier Tage in einem Blockplan, die sich immer wieder wiederholen und nichts mit den tatsächlichen Wochentagen zu tun haben. Jedem ist eine Nummer zugeordnet [1-4].
Der Zeitplan funktioniert so, dass Sie alle Ihre Morgenstunden auflisten, Zeiträume 1-4: [1, 2, 3, 4]. Dies ist Ihr Zeitplan für den ersten Tag oder Tag 1. Der Rest der Tage drehen gerade die Liste: [2, 3, 4, 1], [3, 4, 1, 2], [4, 1, 2, 3].
Die letzte Stunde am Morgen wird jedoch "fallen gelassen" und Sie sehen diesen Lehrer an diesem Tag nicht. Daher sind die Tage: [1, 2, 3], [2, 3, 4], [3, 4, 1], [4, 1, 2].
Der Nachmittag ist das gleiche, mit der Ausnahme , dass es verwendet Perioden 5-8statt: [5, 6, 7], [6, 7, 8], [7, 8, 5], [8, 5, 6].
Deine Aufgabe
All diese Rotationen sind schwer nachzuverfolgen, daher müssen Sie ein Programm schreiben, um meinen Zeitplan auszudrucken, je nachdem, an welchem Tag er eingegeben wird. Ihr Code muss Homeroom und Lunch an den richtigen Stellen platzieren. Hier ist die genaue Ausgabe, die Ihr Code für Eingaben haben muss 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
Aber warte - noch eine Sache!
Manchmal hat meine Schule am ersten Schultag oder an anderen besonderen Tagen einen "Tag 0". Dies bedeutet nur, dass ich an diesem Tag alle meine Klassen zusammen mit dem Klassenraum und dem Mittagessen haben werde. Ihr Code muss sich mit Tag 0 befassen. Hier ist die Ausgabe für einen Tag 0:
Homeroom
Period 1
Period 2
Period 3
Period 4
Lunch
Period 5
Period 6
Period 7
Period 8
Dies ist Code-Golf, also gewinnt der kürzeste Code in Bytes !
1, 2, 3, 5, 6, 7?