SMA saya, dan banyak lainnya menerapkan jenis jadwal yang disebut Rotating Block Schedule. Ini adalah cara bagi orang untuk memiliki 8 kelas, tetapi memiliki 6 periode dalam satu hari sekolah.
Ada empat hari dalam jadwal blok yang berulang-ulang, dan tidak ada hubungannya dengan hari-hari sebenarnya dalam seminggu. Masing-masing diberi nomor [1-4].
Cara jadwal kerjanya adalah bahwa Anda daftar semua kelas pagi, periode 1-4: [1, 2, 3, 4]. Ini adalah jadwal Anda untuk hari pertama, atau Hari 1. Sisa hari hanya memutar daftar: [2, 3, 4, 1], [3, 4, 1, 2], [4, 1, 2, 3].
Namun, periode terakhir di pagi hari adalah "turun" dan Anda tidak melihat guru itu hari itu. Oleh karena itu hari adalah: [1, 2, 3], [2, 3, 4], [3, 4, 1], [4, 1, 2].
Sore hari yang sama, kecuali bahwa ia menggunakan periode 5-8gantinya: [5, 6, 7], [6, 7, 8], [7, 8, 5], [8, 5, 6].
Tugas Anda
Semua rotasi ini sulit untuk dilacak, jadi Anda harus menulis sebuah program untuk mencetak jadwal saya mengingat hari apa itu sebagai input. Kode Anda harus menempatkan Beranda dan Makan Siang di tempat yang benar. Berikut ini adalah output yang pasti dari kode Anda untuk input 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
Tapi Tunggu - Satu hal lagi!
Terkadang, pada hari pertama sekolah, atau pada hari-hari khusus lainnya, sekolah saya memiliki "Hari 0". Ini berarti bahwa saya akan memiliki semua kelas saya hari itu bersama wali kelas dan makan siang. Kode Anda harus berurusan dengan Hari 0. Berikut ini adalah output untuk Hari 0:
Homeroom
Period 1
Period 2
Period 3
Period 4
Lunch
Period 5
Period 6
Period 7
Period 8
Ini adalah kode-golf sehingga kode terpendek dalam byte menang!
1, 2, 3, 5, 6, 7?