アスキーアートの道とそれを横断するのにかかった時間を考えると、スピードを出しているかどうかを教えてください。
単位
距離はの任意の単位ですd
。時間はの任意の単位ですt
。
道
簡単な道は次のとおりです。
10=====
10
手段10 d
あたりt
。それが道路の制限速度です。道路は5 =
秒なので、d
5です。したがって、0.5 t
でその道路を横断する場合、5 / 0.5 = 10なので10 d
あたりに行きましたt
。その道路の制限速度は10なので、制限速度内にとどまりました。
しかし、0.25 t
でその道路を横断する場合、5 / 0.25 = 20 なので20 d
あたり20になりました。その道路の制限速度は10なので、制限速度を10超えました。t
例と計算
入力1は道路の移動にかかった時間であり、入力2は道路そのものです。
これが複雑な道です。
Input 1: 1.5
Input 2: 5=====10=====
最初の道(最初の5 =
秒)で(合法的に)行った最速は5 d
あたりt
です。5(距離)を5(速度制限)で割った値は1であるため、その道路を走行できた最速は1 t
です。
次の道路では、制限速度は10で、距離も5です。横断できる最速は0.5(5/10)です。最小時間を合計すると1.5になります。つまり、正確に速度制限に達しました。
注:ある道路では非常に速く、別の道路では非常に遅く、1.5でクロスする可能性がありますが、ここではベストを想定しています。
最後の例:
Input 1: 3.2
Input 2: 3.0==========20===
最初の道路は長さが10で、速度制限は3です。したがって、最短時間は3.33333 ...(10/3)です。
2番目の道路は3本の長さで、速度制限は20なので、最小時間は0.15(3/20)です。
時間を合計すると3.483333333になります... 3.2でそれを超えたため、どこかでスピードを上げる必要がありました。
ノート:
- 間違いなくスピードを上げている場合は、1つの異なる値を出力し、そうでない場合は、別の異なる値を出力する必要があります。
- プログラムまたは関数では、末尾に改行を入れるために入力または出力が必要になる場合がありますが、提出時にその旨を伝えてください。
- 最初の入力は私の速度です。正の浮動小数点数または整数または文字列になります。
- 2番目の入力は道路です。常に正規表現に一致し
^(([1-9]+[0-9]*|[0-9]+\.[0-9]+)=+)+\n?$
ます。興味がある場合は、ここで潜在的な入力をテストできます。 - 関数またはプログラムの2つのパラメーター、2つの別個のファイル、STDINから2回、またはSTDINに渡されるスペース区切り文字列、関数、ファイル、またはコマンドラインパラメーターで入力を受け取ることができます。
- 必要に応じて、入力の順序を変更できます。
- 質問は?以下のコメントと幸せなコードゴルフで質問してください!
^(([1-9]+[0-9]*|(?!0\.0+\b)[0-9]+\.[0-9]+)=+)+\n?$
。(後読みでもっときれいになりますが、その後.Netエンジンが必要になります)