Barbel di gym saya terlihat seperti ini:
=========[]-----------------------[]=========
Mereka dapat memegang piring dengan lima ukuran berbeda, 2,5 pound, lima pound, sepuluh pound, 25 pound, dan 45 pound:
.
. ! |
. ! | | |
| | | | |
' ! | | |
' ! |
'
Untuk keamanan, kami juga menambahkan klip ]
atau [
di bagian luar semua piring kami jika ada. Bar itu sendiri berbobot 45 pound. Kami selalu menempatkan pelat terberat yang paling dekat dengan pusat, tanpa ada celah di antara pelat mana pun, dan menempatkan pelat identik di kedua sisi. Kami juga selalu menggunakan jumlah pelat minimum yang mungkin, misalnya kami tidak pernah menggunakan dua pelat lima pon di satu sisi, bukan pelat sepuluh pound tunggal. Jadi jika saya ingin mengangkat 215 pound, bar saya terlihat seperti ini:
. .
.!| |!.
!||| |||!
====]||||[]-----------------------[]||||[====
!||| |||!
'!| |!'
' '
Kode Anda, sebuah fungsi atau program lengkap, harus mengambil bilangan bulat dari 45 hingga 575, selalu kelipatan 5, dan menampilkan bilah yang menambah bobot tersebut. Sebagai contoh:
Memasukkan: 45
Keluaran (perhatikan tidak ada klip pada bilah kosong):
=========[]-----------------------[]=========
Memasukkan: 100
Keluaran:
! !
.| |.
======]||[]-----------------------[]||[======
'| |'
! !
Memasukkan: 575
Keluaran:
..... .....
.!||||| |||||!.
!||||||| |||||||!
]||||||||[]-----------------------[]||||||||[
!||||||| |||||||!
'!||||| |||||!'
''''' '''''
Anda dapat memiliki spasi tambahan pada setiap baris atau tidak, tetapi output Anda tidak dapat memiliki baris kosong awal atau akhir (output untuk 45 harus satu baris, untuk 50 harus tiga baris, untuk 65 harus lima baris, dan seterusnya.)
Ini golf kode, kode terpendek menang!
print
?Jawaban:
Pyth, 126 byte
Kode sumber berisi karakter yang tidak patut dicetak, jadi ini dia sebagai dump XXD:
Kode ini sangat lambat , sampai-sampai tidak digunakan. Anda dapat mempercepatnya sekitar 1000 kali dengan menambahkan panggilan
.{
(set
) di antaranya, sambil menjaga kode tetap setara secara fungsional. Berikut ini adalah versi ramah-rekat dari kode yang dihasilkan:sumber
Python 2, 295 byte
Buat bilah secara vertikal, lalu putar dan cetak garis yang tidak kosong.
sumber
-v-1
adalah kandidat utama untuk negasi bitwise;~v
.Arang , 65 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Cetak 12
-
s,[]
dan 9=
s. Ini terdiri dari setengah bilah. Kursor dibiarkan di awal=
s.Kurangi 45 dari input untuk memungkinkan berat bar.
Saring daftar kemungkinan bobot pasangan bobot untuk yang tidak lebih besar dari input, dan ulangi sementara daftar tidak kosong.
Pisahkan string
|||.,|.,|!,||.,||!
pada koma dan pilih bagian yang sesuai dengan berat terberat yang mungkin, dan cetak keduanya ke atas dan ke bawah. (Atau, dimungkinkan untuk hanya mencetaknya ke atas dan mencerminkan ke¬
arah di akhir; sejumlah variasi memiliki panjang yang sama.)Cetak klipnya (akan ditimpa oleh berat berikutnya jika ada).
Kurangi bobot dari input.
Renungkan untuk menyelesaikan barbel.
sumber