Lihat Lubang # 1 jika Anda bingung.
Apa yang dilakukan setiap anak setelah dia mengumpulkan ember permen saat Halloween?
Urutkan berdasarkan jenis dan ukuran, tentu saja 1 !
Tantangan
Diberikan kantong permen yang dibuang dengan berbagai bentuk dan ukuran, sortir permen dari kiri ke kanan berdasarkan:
- Pertama: Jumlah permen (jadi 5 dari satu akan lebih banyak daripada 4 yang lain)
- Kedua (jika ada ikatan setelah yang pertama): Jika jumlahnya sama, permen dengan area lebih internal (berdasarkan jumlah karakter) akan peringkat lebih tinggi.
Jika setelah pengurutan kedua masih ada dasi, maka Anda dapat memilih untuk menjadi yang pertama.
Memasukkan
Anda akan diberikan permen melalui stdin; bertebaran tentang. Lihat contoh di bawah ini.
Keluaran
Keluarkan permen yang dipesan dalam urutan yang benar. Catatan, permen harus selalu diletakkan di kolom yang sangat rapi untuk menenangkan ikan OCD Anda 2 . Permen dari jenis yang sama harus ditempatkan langsung di bawah satu sama lain. Lihat contoh di bawah ini.
Apa yang Anda maksud dengan "area interior"?
Area interior sepotong permen diukur oleh karakter total yang membentuk permen secara keseluruhan.
Setiap spasi putih dalam "perbatasan" dianggap sebagai bagian dari area permen.
Perbatasan adalah setiap loop karakter yang terhubung, setiap karakter diagonal atau di sebelah tetangganya.
Sebagai contoh,
+--------+
| |
| |
| |
| |
+--------+
memiliki lebih banyak area daripada
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
meskipun secara keseluruhan memiliki lebih sedikit karakter.
Contohnya
memasukkan:
_ \| |/ _
_ lllllll -*------------*- -\ /- lllllll
lllllll lllllllll | /\ /\ / | +|\ooooo/|+ lllllllll
lllllllll llll+llll | / \/ \/ | ||o o|| llll+llll
llll+llll lllllllll -*------------*- ||o o|| lllllllll
lllllllll lllllll /| |\ +|/ooooo\|+ lllllll
lllllll | -/ \- |
| | _ |
| -\ /- | lllllll |
| +|\ooooo/|+ | lllllllll |
| ||o o|| | llll+llll |
| ||o o|| + lllllllll rrr--rrr +
+ +|/ooooo\|+ lllllll rr||rr
-/ \- | | || |
| | || |
| | || |
| | || |
| \| |/ | || |
+ -*------------*- | || |
| /\ /\ / | | || |
-\ /- | / \/ \/ | | || |
+|\ooooo/|+ -*------------*- rr||rr
||o o|| /| |\ rrr--rrr
||o o||
+|/ooooo\|+
-/ \-
Akan menjadi
_ \| |/ -\ /- rrr--rrr
lllllll -*------------*- +|\ooooo/|+ rr||rr
lllllllll | /\ /\ / | ||o o|| | || |
llll+llll | / \/ \/ | ||o o|| | || |
lllllllll -*------------*- +|/ooooo\|+ | || |
lllllll /| |\ -/ \- | || |
| | || |
| \| |/ -\ /- | || |
| -*------------*- +|\ooooo/|+ | || |
| | /\ /\ / | ||o o|| | || |
| | / \/ \/ | ||o o|| rr||rr
+ -*------------*- +|/ooooo\|+ rrr--rrr
/| |\ -/ \-
_
lllllll \| |/ -\ /-
lllllllll -*------------*- +|\ooooo/|+
llll+llll | /\ /\ / | ||o o||
lllllllll | / \/ \/ | ||o o||
lllllll -*------------*- +|/ooooo\|+
| /| |\ -/ \-
|
|
|
|
+
_
lllllll
lllllllll
llll+llll
lllllllll
lllllll
|
|
|
|
|
+
_
lllllll
lllllllll
llll+llll
lllllllll
lllllll
|
|
|
|
|
+
Contoh kedua:
qq \/
qq qq qq +-----+
qq qq qq + |
jjjjjjjj qq qq | |
jjjjjj \/ qq qq | |
jjjj +-----+ <---notice that the left side is not connected qq +-------+
jj jj + | <--> <-->
j j | |
jj <> jj | | <--> qq jjjjjjjj
jj jj +-------+ qq jjjjjj
jjjj qq qq jjjj
qq qq jj jj
j j
+---------------------------------------------------------+ jj <> jj
ooooo +---------------------------------------------------------+ jj jj
o yyyyyy jjjj
o ww - notice diagonal border, allowed
o ww jjjjjjjj
o yyyyyy ooooo ooooo jjjjjj
ooooo o yyyyyy o yyyyyy jjjj
o ww o ww jj jj
o ww o ww j j
o yyyyyy o yyyyyy jj <> jj
ooooo ooooo jj jj
jjjj
Larutan:
qq ooooo jjjjjjjj <--> \/ +---------------------------------------------------------+
qq o yyyyyy jjjjjj +-----+ +---------------------------------------------------------+
o ww jjjj <--> + |
qq o ww jj jj | |
qq o yyyyyy j j <--> | |
ooooo jj <> jj +-------+
qq jj jj
qq ooooo jjjj \/
o yyyyyy +-----+
qq o ww jjjjjjjj + |
qq o ww jjjjjj | |
o yyyyyy jjjj | |
qq ooooo jj jj +-------+
qq j j
ooooo jj <> jj
qq o yyyyyy jj jj
qq o ww jjjj
o ww
qq o yyyyyy jjjjjjjj
qq ooooo jjjjjj
jjjj
qq jj jj
qq j j
jj <> jj
qq jj jj
qq jjjj
Perhatikan bahwa kolom memiliki 1 karakter spasi di antara mereka, dan disejajarkan secara horizontal di atas. Perhatikan juga bahwa setiap permen berada dalam kolom yang tepat, setiap permen dengan 1 karakter jarak di antaranya.
Mencetak gol
Ini adalah kode-golf, sehingga program terpendek (dalam byte) menang.
1 Apa lagi yang akan Anda lakukan? Tentunya Anda ingin menampilkan kekuatan dan kekuatan Anda yang luar biasa dalam jumlah permen yang Anda kumpulkan, bukan?
2 Saya tahu apa yang Anda pikirkan! Seekor ikan harus melihat melalui mangkuk melengkung di permen Anda, jadi karena itu akan terdistorsi pula! Nah, ikan saya hidup (sebelum mati) di akuarium persegi panjang .
Jawaban:
Ruby, 928 karakter
Wah, ini menyenangkan!
Anda dapat memberikan input pada STDIN, atau Anda dapat mengirimkan file input sebagai argumen (seperti
ruby organize.rb candy.txt
) dan itu akan memperlakukan file sebagai STDIN secara otomatis.Semua titik koma dapat diganti dengan baris baru; Saya hanya menempelkan beberapa garis untuk mengurangi ruang vertikal.
Tidak Digubah (2367 karakter):
sumber