Bisakah wadah ini menampung cairan sebanyak ini?
Tantang Sinopsis
Seperti yang kemungkinan besar Anda ketahui, cairan memiliki bentuk yang tidak terbatas dan volume yang pasti. Karena itu, mereka selalu mengambil bentuk wadah mereka. Namun, mereka tidak dapat memperluas untuk mengisi wadah mereka.
Tugas Anda hari ini adalah menentukan apakah cairan dalam jumlah tertentu (diwakili oleh sejumlah Lkarakter atau angka yang mewakili volume bagian, sesuai saran) dapat masuk ke dalam wadah dengan ukuran tertentu (diwakili oleh matriks dari Ckarakter) dengan sejumlah ruang kosong (diwakili oleh karakter spasi) di dalamnya. Wadah akan selalu memiliki Ckarakter di sekelilingnya.
Program Anda akan mengembalikan nilai kebenaran / kepalsuan berdasarkan apakah cairan tersebut akan masuk ke dalam wadah. Ini hanya akan cocok jika ada area ruang kosong yang terhubung (terdiri dari ruang yang berdekatan satu sama lain secara horizontal, diagonal, atau vertikal) di dalam wadah untuk setiap bagian cairan yang dipisahkan dari yang lain (baik oleh ruang atau oleh dua karakter baris baru).
Uji Kasus
LLL
L
----- True
CCCCC
C CC
C CC
CCCCC
LLL
LL
------ True
CCCCCC
C C C
C CCC
CCCCCC
L L
LLL
----- False (Not enough space)
CCCCC
CCCCC
C CC
CCCCC
LL
------ False (Spaces are not connected but liquid is)
CCCCCC
CCCC C
C CCCC
CCCCCC
L L
------ True
CCCCCC
CCCC C
C CCCC
CCCCCC
L L
------ True (There is a pocket of empty space which holds both parts of the liquid)
CCCCCC
CCC C
CCCCCC
CCCCCC
L
L
------ True (There is a pocket of empty space for each part of the liquid)
CCCCCC
CCCC C
C CCCC
CCCCCC
L L L LL
------ True
CCCCCCCCC
CCCC C C
C CCCCCCC
CCCCCC CC
CCCCCCCCC
L
L
----- True
CCCCC
CCCCC
C CC
CCCCC
Jangan ragu untuk menyarankan uji kasus!
Aturan
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
- Celah standar tidak diijinkan.
Lteks sebagai daftar volume (yaitu daftar jumlah Ls di setiap jumlah)? Karena mengurai ruang dan menggandakan baris baru tampaknya tidak berhubungan dengan inti tantangan. Bisakah kita mengambil Cteks sebagai matriks dari dua nilai berbeda bukan karena alasan yang sama?
Ldan satu LLdengan ruang ukuran 3 dan 2 (sebuah algoritma yang hanya mengisi ruang terkecil terlebih dahulu dengan potongan cairan terkecil yang masih akan digunakan akan menghasilkan Falsey). Mungkin sama tetapi dengan 2 Ldan satu LLLjuga, untuk melayani ke arah lain.
Lke daftar integer. Yang kedua adalah parsing input Cmatrix ke daftar integer. Dan yang ketiga adalah pertanyaan menentukan untuk diberikan tas integer A dan B, jika ada partisi di A, ketika menjumlahkan semua bilangan bulat di setiap partisi untuk mendapatkan tas A ', setiap angka terbesar ke-n dalam A' lebih kecil ( <=) dari angka ke-n terbesar di B '.
L\n\nL,CCCCC\nCCCCC\nC..CC\nCCCCC(.mewakili spasi,\nmewakili baris baru).