Anda bertanggung jawab untuk membangun jalan bebas hambatan baru. Namun, itu mengarah melalui tanah pegunungan dan karena itu membutuhkan banyak jembatan dan terowongan. Jalan bebas hambatan itu sendiri harus tetap di satu tingkat.
Memasukkan
Anda diberikan deskripsi ASCII kasar tentang bagaimana pegunungan terlihat seperti pada input standar, seperti berikut ini:
/\
/ \
/\ / \
/\ / \/ \
/ \ / \ /\
/ \/ \ / \
_ / \ /\ / \
\ / \ / \ / \ /\
\ / \ / \/ \/ \
\ / \ /
\/ \/
Di _
kolom pertama menandai awal dan tingkat jalan. Rentang gunung berdekatan dan jika segmen terakhir akan menjadi jembatan, ia memiliki jumlah karakter yang genap.
Anda dapat mengasumsikan bahwa garis input tidak lebih dari 100 karakter dan tidak ada lebih dari 15 baris. Setiap baris memiliki panjang yang sama yang mungkin ruang-empuk di ujungnya. Jalan tidak pernah dimulai dalam gunung atau jembatan. Hal pertama yang mengikuti ubin jalan di input adalah kemiringan ke bawah atau ke atas.
Keluaran
Outputnya adalah pegunungan yang sama, kecuali sekarang ada jalan di mana sebelumnya hanya permulaannya. Output diberikan pada output standar.
Untuk ini ada banyak aturan:
Jalan harus dimulai dari tempat yang ditunjukkan pada input dan tetap pada level yang sama. Untuk membuatnya lebih mudah, kami telah menyiapkan sejumlah ubin jalan utama yang terlihat seperti ini
_
:_______ \ / \/\/
Jalan harus memanjang hingga ujung pegunungan (yaitu panjang jalur input menentukan seberapa jauh jalan itu berjalan).
Terowongan harus dibor setiap kali gunung berada di mana jalan harus dilalui. Terowongan lurus melewati gunung dan meninggalkan lubang di awal dan di akhir (yaitu sebuah terowongan menggantikan kemiringan gunung dengan tanda kurung tutup di awal dan tanda kurung pembuka di ujungnya).
Terowongan pergi, well, sebuah terowongan di gunung yang biasanya memiliki langit-langit. Untungnya, ubin jalan utama kami dapat digunakan untuk memperkuat langit-langit sehingga terowongan tidak runtuh (garis di atas terowongan harus digunakan
_
untuk memperkuat terowongan):/\ / \ /____\ ___)______(__ \/ \/
Terowongan tidak perlu diperkuat ketika gunung tidak cukup tinggi di atasnya. Kedengarannya aneh bagi saya juga, tetapi saya telah diberitahu bahwa ubin jalan premade cukup kuat untuk menahan bahkan ketika ditempatkan dalam kasus itu (tidak ada langit-langit terowongan digambar ketika ada lereng tepat di atas terowongan):
/\ /\/__\ ___)______(__ \/ \/
Jembatan dibutuhkan setiap kali jalan harus melewati jurang. Untuk jembatan pendek ubin jalan premade cukup kuat tetapi masih memerlukan sedikit dukungan di awal dan akhir jembatan (kemiringan ke bawah pertama di bawah jembatan dan kemiringan ke atas terakhir digantikan oleh
Y
sehingga ada balok penyangga untuk jembatan ):_____ Y Y \/
Jembatan yang lebih panjang membutuhkan dukungan tambahan. Jembatan panjang adalah salah satu yang memiliki lebih dari enam ubin jalan yang tidak didukung dalam satu baris. Jembatan panjang membutuhkan pilar di tengahnya. Pilar mudah dibangun dengan prebuilt kami pilar balok yang terlihat seperti ini:
|
. Setiap pilar membutuhkan dua pilar dan mereka memanjang hingga ke dasar jurang:_____________________________ Y || Y \ /\ || /\ /\/ \ /\ / \||/ \ /\/ \/ \/ \/ \/
Karena input hanya mewakili sebagian dari seluruh pegunungan yang harus dibangun melalui jalan bebas hambatan, maka jalan itu bisa berakhir secara tiba-tiba di tengah jembatan atau terowongan. Aturan jembatan panjang masih berlaku untuk segmen akhir dan Anda dapat mengasumsikan bahwa bagian pertama di luar input yang diberikan mendukung jembatan lagi.
Mengikuti aturan di atas, kami mendapatkan yang berikut untuk input kami:
/\
/ \
/\ / \
/\ / \/ \
/ \ / \ /\
/____\/______________\ /__\
_________)______________________(________)(____)____(______
Y Y Y Y Y Y Y YY
\ / \ / \/ \/ \
\ / \ /
\/ \/
Kode terpendek menurut jumlah karakter menang. Trailing whitespace di baris diabaikan untuk validasi.
Masukan sampel 1
_
\ /\
\ / \
\ / \
\ /\ / \ /\ /
\ /\ / \ / \ /\ /\/ \ /
\ / \ / \/ \ / \/ \/\ /
\/ \ / \ / \/
\ / \/
\/
Output sampel 1
____________________________________________________________
Y || YY ||
\ || / \ ||
\ || / \ ||
\ || /\ / \ || /\ /
\ /\ || / \ / \ /\ |/\/ \ /
\ / \ || / \/ \ / \/ \/\ /
\/ \ || / \ / \/
\||/ \/
\/
Masukan sampel 2
/\ /\
/ \/ \ /
/\ / \ /\ /
/\ / \ / \/ \ /
/ \ / \/\ / \ /\ /
/ \/ \ / \ / \ /
_/ \ / \/ \/
\ /
\ /\/
\ /\ /
\/ \ /
\ /
\/
Keluaran sampel 2
/\ /\
/ \/ \ /
/\ / \ /\ /
/\ / \ / \/ \ /
/ \ / \/\ / \ /\ /
/____\/________\ /__________________\ /__\ /____
_)________________(__________________)____________________()____()_____
Y || Y
\ || /\/
\ /\ || /
\/ \|| /
\| /
\/
Catatan
Ruang tertinggal dalam keluaran diabaikan untuk dibandingkan dengan solusi referensi.
Kondisi menang
Kode terpendek menang, seperti kebiasaan dalam golf. Dalam kasus seri, solusi sebelumnya menang.
Uji kasus
Ada dua skrip pengujian, yang berisi kasus pengujian yang identik:
Doa dalam kedua kasus:, <test script> <my program> [arguments]
misalnya ./test ruby bridges.rb
atau ./test.ps1 ./bridges.exe
.
Catatan lain
Tugas ini adalah bagian dari kontes golf yang diadakan di universitas saya selama 2011-W24. Nilai dan bahasa kontestan kami adalah sebagai berikut:
- 304 - Perl
- 343 - C
- 375 - C
- 648 - Python
Solusi kami sendiri (terima kasih kepada Ventero) adalah
- 262 - Ruby