Diberi jalan seni ascii dan waktu yang saya perlukan untuk melewatinya, beri tahu saya jika saya melaju kencang.
Unit
Jarak adalah dalam unit arbitrer dari d
. Waktu dalam unit sewenang-wenang t
.
Jalan
Ini jalan sederhana:
10=====
The 10
berarti 10 d
per t
. Itu adalah batas kecepatan untuk jalan. Jalan memiliki 5 =
s, jadi ini d
adalah 5. Oleh karena itu, jika saya menyeberang jalan itu dalam 0,5 t
, saya pergi 10 d
per t
, karena 5 / 0,5 = 10. Batas kecepatan jalan itu adalah 10, jadi saya tetap dalam batas kecepatan.
Tetapi jika saya menyeberang jalan itu di 0,25 t
, saya pergi 20 d
per t
, karena 5 / 0,25 = 20. Batas kecepatan jalan itu adalah 10, jadi saya pergi 10 di atas batas kecepatan.
Contoh dan perhitungan
Perhatikan bahwa input 1 adalah waktu yang saya ambil untuk menempuh jalan, dan input 2 adalah jalan itu sendiri.
Inilah jalan yang kompleks:
Input 1: 1.5
Input 2: 5=====10=====
Yang tercepat yang saya bisa (secara hukum) pergi di jalan pertama (5 pertama =
) adalah 5 d
per t
. Karena 5 (jarak) dibagi 5 (batas kecepatan) adalah 1, tercepat saya bisa pergi di jalan itu adalah 1 t
.
Di jalan berikutnya, batas kecepatan adalah 10 dan jaraknya juga 5, tercepat yang bisa saya lewati yaitu 0,5 (5/10). Total hasil kali minimum dalam 1,5, berarti saya pergi tepat pada batas kecepatan.
Catatan: Saya tahu, saya mungkin sudah sangat cepat di satu jalan dan sangat lambat di jalan lain dan masih menyeberang 1,5, tetapi anggap yang terbaik di sini.
Contoh terakhir:
Input 1: 3.2
Input 2: 3.0==========20===
Jalan pertama adalah 10 panjang dan memiliki batas kecepatan 3, sehingga waktu minimum adalah 3,33333 ... (10 / 3.)
Jalan kedua adalah 3 panjang dan memiliki batas kecepatan 20, sehingga waktu minimum adalah 0,15 (3 / 20.)
Total hasil kali dalam 3,483333333 ... Saya melewati dalam 3,2, jadi saya harus melaju di suatu tempat.
Catatan:
- Anda harus menampilkan satu nilai berbeda jika saya tidak diragukan lagi ngebut, dan nilai lain yang berbeda jika saya mungkin tidak.
- Program atau fungsi Anda mungkin memerlukan input atau output untuk memiliki baris tambahan, tapi tolong katakan demikian dalam kiriman Anda.
- Input pertama Anda adalah kecepatan saya. Ini akan menjadi float atau integer atau string yang positif.
- Input kedua Anda akan menjadi jalan. Itu akan selalu cocok dengan regex
^(([1-9]+[0-9]*|[0-9]+\.[0-9]+)=+)+\n?$
. Anda dapat menguji input potensial di sini jika Anda tertarik. - Anda dapat mengambil input dalam 2 parameter fungsi atau program, dalam 2 file terpisah, dari STDIN dua kali, atau dari string yang dipisahkan ruang yang diteruskan ke STDIN, sebuah fungsi, file, atau parameter baris perintah.
- Jika Anda ingin, Anda dapat mengubah urutan input.
- Ada pertanyaan? Tanyakan di bawah ini di komentar dan selamat bermain golf !
^(([1-9]+[0-9]*|(?!0\.0+\b)[0-9]+\.[0-9]+)=+)+\n?$
. (Akan lebih bersih dengan tampilan di belakang, tetapi kemudian akan membutuhkan mesin Net.)