Misalkan kisi ruang ini dan X
mewakili penampang beberapa nampan es batu berbentuk aneh :
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
Kolom tanpa X
mewakili lubang atau celah di baki yang tidak dapat menampung air, mengalir ke wastafel kapasitas tak terbatas. Air yang jatuh dari ujung paling kiri atau paling kanan dari kotak masuk ke bak cuci tanpa akhir ini juga.
Jika kita menempatkan keran di atas nampan dan membiarkannya terisi dengan air sampai permukaan air di semua kompartemen tetap stabil, kompartemen yang tepat yang menjadi terisi akan bergantung pada tempat aliran air diposisikan di atas nampan. (Asumsikan aliran air tipis dan stabil tanpa percikan.)
Misalnya, jika faucet kami F
berada di atas kolom grid paling kiri
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
air akan jatuh ke bagian paling atas X
di kolom itu dan menyebar ke kiri dan kanan, separuh kiri tumpah ke wastafel di bawah, dan separuh kanan mengisi kompartemen 2 × 1. Setelah kompartemen terisi, bagian kanan aliran air tidak memiliki tempat untuk mengalir tetapi ke bak cuci dan permukaan air di mana-mana pada dasarnya stabil.
Mematikan faucet, baki sekarang terlihat seperti ini: (dengan ~
air)
X X X
X~~X X XX X XX X
XXXXXX XXXXXXXXXXXXX
Demikian pula jika kita memposisikan faucet seperti ini:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
Ini akan mengisi dua kompartemen paling kiri tetapi sisa air akan mengalir:
X X X
X~~X~X XX X XX X
XXXXXX XXXXXXXXXXXXX
Jika kita memposisikan faucet seperti ini:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
Setengah bagian kiri aliran akan mengalir ke bak cuci tetapi bagian kanan akhirnya akan mengisi tiga kompartemen paling kanan karena tidak ada batasan seberapa jauh air dapat berjalan secara horizontal di permukaan yang datar:
X X~X
X X X XX~X~~XX~~~X
XXXXXX XXXXXXXXXXXXX
Diposisikan seperti ini, namun:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
Semua air mengalir dan tidak ada kompartemen yang terisi:
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
Tantangan
Tulis program atau fungsi yang menggunakan kotak spasi persegi panjang X
, satu, dan satu F
. Baris atas akan selalu F
berisi spasi dan sebaliknya hanya berisi spasi. Tanda X
's di setiap kolom (jika ada) akan membentang dalam garis yang solid di atas dasar kisi, yaitu tidak akan ada gua atau gubuk.
Cetak atau kembalikan kisi-kisi setelah faucet F
mengisi apa yang bisa dengan air ~
seperti dijelaskan di atas. Biarkan F
baris atas dari output.
Grid selain dari baris faucet akan minimal 1 × 1 jadi
F X
adalah input terkecil yang Anda butuhkan untuk mendukung.
Input akan muncul sebagai kotak teks lengkap. Ruang-ruang terkemuka dan tertinggal sangat penting dalam input dan output. misal input
F X X XXXX
harus menghasilkan
X~~X XXXX
(perhatikan ruang depan dan belakang)
Memiliki satu trailing newline di input atau output baik-baik saja.
Anda dapat menggunakan empat yang berbeda ASCII printable karakter di tempat ruang,
X
,F
,~
.
Kode terpendek dalam byte menang.
Contoh Besar:
Memasukkan:
F
X X
X X X
X XXX X X X X X
X X XXXXXXX X XXX XXXXXXX X X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX
Keluaran:
X~~~~~~~~~~~~~X
X~~~~~~~~~~~~~X~X
X~~~~~~~~~~~~XXX~~~~~~~X~~~~X~X~~~~~~~~~~~X X
X~~~X~~~~~XXXXXXX~~~~~~X~~~~XXX~~~~~XXXXXXX X X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX
zip()
<3