Anda adalah karyawan di toko kelontong baru, Half Foods, dan ini adalah hari sebelum Paskah Thanksgiving Natal . Karena toko akan penuh dengan pelanggan yang terburu-buru untuk mendapatkan bahan makanan mereka, toko membutuhkan manajer lalu lintas untuk mengirim semua orang ke jalur yang sesuai. Menjadi malas, Anda ingin mengotomatisasi ini sehingga Anda dapat pergi ke toko sebelum semua orang mengambil semua kalkun ham apa pun. Namun, yang Anda miliki hanyalah ponsel Anda, dan mengkodekan program-program panjang itu sungguh menyusahkan - jadi Anda harus menghilangkan keterampilan kode- ninja golf Anda .
Tantangan
Mari kita visualisasikan toko kelontong di grid dua dimensi. Berikut contoh kisi untuk dibedah:
e
s
s
s
Y
# # #s #
#s # #s #
#s # #s #
#s #s #s #
#3 #1 #4 #
x x x x
Kotak dimulai dengan e
, yang mewakili "outlet" ke seluruh toko. Setiap generasi, semua outlet di grid menelurkan pembelanja ( s
) langsung di bawah. Pembeli bergerak ke bawah setiap generasi sampai mereka mencapai Anda ( Y
). Ketika seorang pembelanja mencapai barisan yang sama dengan Anda, Anda harus memindahkan pembelanja ke bagian awal garis dengan jumlah pembeli yang paling sedikit di dalamnya. Seorang pembelanja segera pindah ke garis ketika mereka akan pindah ke barisan dengan Y
, tidak ada generasi di antara keduanya. Garis diwakili oleh #
s - kolom setelah #
s adalah garis. Pembeli pergi ke ujung garis (diwakili oleh jalan keluar x
), dan kemudian berubah menjadi angka acak antara 1
dan5
. Setiap generasi, Anda harus mengurangi pembelanja bernomor oleh 1
- ketika pembelanja akan mencapai 0
, mereka selesai memeriksa dan mereka meninggalkan toko.
Diberikan masukan dari kisi-kisi seperti ini, output generasi berikutnya dari toko kelontong (pindahkan semua pembeli ke bawah secara bersamaan, redirect pembeli, dan minta mereka pergi jika sudah selesai).
Sampel
Memasukkan:
e
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Keluaran:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Memasukkan:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Keluaran
e
s
Y
#s # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Memasukkan:
e
Y
# # # #
# # # #
# # # #
#s # # #
# # # #
x x x x
(Kemungkinan) Output:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Memasukkan:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
Keluaran:
e
s
Y
# #s # #
# # # #
# # # #
# # # #
#2 # # #
x x x x
Memasukkan:
e
Y
# # # #
# # # #
# # # #
# # # #
#1 # # #
x x x x
Keluaran:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
Ini kode-golf , jadi kode terpendek menang.