Apakah Anda suka menonton garis waktu keren konstruksi atau pekerjaan besar lainnya yang dilakukan dalam hitungan menit? Mari kita buat satu di sini.
Kami akan melihat penggalian penggalian, membuat gambar setiap hari untuk melihat seluruh kemajuan. Dan tugas Anda adalah menunjukkan kepada kami proses ini!
Tambang didefinisikan oleh lebar lapisan pertama.
Excavator ditentukan oleh kemampuannya untuk menggali dalam satu hari.
Memasukkan
Lebar tambang. Angka integer, selalu> = 1.
Kecepatan penggalian excavator. Angka integer, selalu> = 1.
Keluaran
Kemajuan menggali tambang setiap hari. Dimulai dengan tanah datar yang belum tersentuh dan selesai dengan penambangan yang lengkap.
Aturan
Pada hari terakhir mungkin ada lebih sedikit unit untuk digali, daripada yang mampu digali oleh excavator. Pekerjaan yang berlebihan tidak akan digunakan di mana pun, jadi Anda harus mengeluarkan tambang yang digali sepenuhnya.
Semua hari kemajuan harus hadir dalam output sekaligus. Anda tidak dapat menghapus atau menimpa kemajuan hari sebelumnya di output.
Mengejar dan memimpin baris baru untuk setiap hari dapat diterima dalam jumlah yang wajar.
Ini adalah kode-golf , jadi buatlah kode Anda seringkas mungkin.
Klarifikasi
Pekerjaan dimulai dengan tanah datar. Panjang ground yang ditampilkan adalah lebar quarry + 2. Jadi selalu ada satu karakter garis bawah di kedua sisi quarry.
__________
Tambang penggalian terlihat seperti ini untuk lebar genap:
_ _
\ /
\ /
\ /
\/
Dan seperti ini untuk lebar ganjil
_ _
\ /
\ /
\ /
V
Berikut adalah contoh dari kemajuan penambangan:
_ _______
V dug 1 unit
_ ______
\/ dug 2 units
_ ___
\___/ dug 5 units
_ _
\ __/ dug 10 units
\_/
Contoh kemajuan penuh. Lebar tambang: 8. Kecepatan excavator: 4 unit per hari.
__________
_ _____
\__/
_ _
\______/
_ _
\ __/
\__/
_ _
\ /
\ __/
\/
_ _
\ /
\ /
\ /
\/
Cornercases
Excavator perlu menggali pada hari terakhir persis kemampuannya (kecepatan)
Width: 7, Speed: 3
Width: 10, Speed: 4
Retina 0.8.2 ,
163156 byteCobalah online! Penjelasan:
Konversikan input ke unary. Ini memberi kita
W¶S
.Tukar input dan gandakan lebar. Ini memberi kita
S¶W¶W
.Hitung volume kuari. Ini memberi kita
S¶W¶V
.Gabungkan input menjadi satu baris. Ini memberi kita
S;W;V
.Hitung jumlah kemajuan untuk setiap hari pada jalurnya sendiri. Setiap hari memiliki format
S;W;D
, di manaD
ada0
di baris pertama dan peningkatanS
setiap hari hingga mencapaiV
.Hapus
S
dan tambahW
2 pada setiap baris. Ini memberi kitaG;D
setiap hari.Sementara
D
bukan nol, gali salah satuD
atauG-2
dari baris (sehingga karakter pertama dan terakhir selalu tersisa), pindahkan kedalaman ke baris berikutnya. Setiap baris diberi indentasi dengan lebih>
dari sebelumnya. Garis yang baru digali juga termasuk a<
.Ubah indentasi menjadi spasi dan berikut ini
_
menjadi a\
.Jika a
<
mengikuti a\
maka ubah menjadi aV
, jika mengikuti a_
maka ubah menjadi a/
. Hapus semua tanda<
dan tanda;
.sumber
Python 2 , 265 byte
Cobalah online!
sumber
1+i+a
kei-~a
.sum(range(0,w+1,2))
dapatw/2*(w/2+1)
t
mungkin juga dapat digarisbawahi, menghasilkan 257 byte .JavaScript (Node.js) ,
329315307300301298285275260254 byteCobalah online!
Penjelasan
sumber
w
aneh.f=
) dan Anda dapat menyimpan byte lain dengan menjelajah parameter (w=>s=>
).