İyi bir sanat yolu ve onu geçmem için gereken süre göz önüne alındığında, hızlanıp hızlanmadığımı söyle.
Birimler
Mesafe keyfi biriminde d
. Zaman keyfi biriminde t
.
Yol
İşte basit bir yol:
10=====
10
Aracı 10 d
her t
. Bu yolun hız sınırıdır. Yol 5 sahiptir =
onun kadar, s d
ı 0.5 bu yol çapraz Bu nedenle, 5'tir t
, I 10 çıktı d
başına t
5 / 0.5 = 10 bu yolun hız sınırı 10, çünkü hız sınırı içinde kaldı, böylece.
I o yol çapraz Ancak 0.25 t
, 20 çıktı d
başına t
5 /, çünkü 0.25 = 20 bu yolun hız sınırı 10 I hız sınırı üzerinde 10 gitti.
Örnekler ve hesaplamalar
Unutmayın ki 1 girişi, yolu seyahat etmek için harcadığım süre ve 2 girişi de yolun kendisidir.
İşte karmaşık bir yol:
Input 1: 1.5
Input 2: 5=====10=====
İlk yoldan (yasal olarak) çıkabileceğim en hızlı =
olanı (ilk 5 sn) d
5'tir t
. 5'e (mesafe) 5'e (hız sınırı) bölünen 1 olduğu için, o yolda gidebileceğim en hızlı 1'dir t
.
Bir sonraki yolda, hız sınırı 10 ve mesafe de 5'tir, en hızlı 0,5 (5/10) olanı geçebilirim. Minimum sürelerin toplamı 1.5 ile sonuçlanır, bu da tam olarak hız sınırına ulaştım.
Not: Biliyorum, bir yolda gerçekten hızlı gidiyor olabilirim, diğerinde çok yavaş gidiyor ve hala 1.5'te geçiyor olabilirim, ama burada en iyisini kabul ediyorum.
Son bir örnek:
Input 1: 3.2
Input 2: 3.0==========20===
İlk yol 10 uzun ve 3'teki hız sınırına sahip, bu yüzden minimum süre 3.33333 ... (10/3)
İkinci yol 3 uzun ve hız sınırı 20, bu nedenle minimum süre 0,15 (3/20).
Zamanların toplamı 3.483333333 olarak sonuçlandı ... 3,2'de çarpıştım, bu yüzden bir yere basmalıydım.
Notlar:
- Kuşkusuz hızlanıyorsam bir değeri, olmasam bile başka bir değeri çıkarmalısınız.
- Programınız veya işleviniz, izleyen bir yeni hattın girilmesi için girdi veya çıktı gerektirebilir, ancak lütfen gönderiminizde bunu söyleyin.
- İlk girişiniz benim hızım olacak. Olumlu bir kayan nokta veya tam sayı veya dize olacak.
- İkinci girişiniz yol olacak. Her zaman regex ile eşleşir
^(([1-9]+[0-9]*|[0-9]+\.[0-9]+)=+)+\n?$
. İlgileniyorsanız, potansiyel girişleri burada test edebilirsiniz. - Bir fonksiyon veya programın 2 parametresinde, 2 ayrı dosyada, iki kez STDIN'den veya STDIN'e, bir fonksiyondan, bir dosyadan veya komut satırı parametresinden geçen boşlukla ayrılmış bir dizgeden girdi alabilirsiniz.
- İsterseniz, girişlerin sırasını değiştirebilirsiniz.
- Sorusu olan? Yorumlar ve mutlu kod-golf ing!
^(([1-9]+[0-9]*|(?!0\.0+\b)[0-9]+\.[0-9]+)=+)+\n?$
. (Bir bakışla daha temiz olurdu, ama sonra ihtiyaç duyacağı. Net motoru)