Đưa ra một con đường nghệ thuật và thời gian để tôi băng qua nó, hãy nói cho tôi biết nếu tôi đang tăng tốc.
Các đơn vị
Khoảng cách là trong đơn vị tùy ý của d
. Thời gian là trong đơn vị tùy ý của t
.
Con đường
Đây là một con đường đơn giản:
10=====
Có 10
nghĩa là 10 d
mỗi t
. Đó là giới hạn tốc độ cho đường. Đường có 5 =
giây, vì vậy d
là 5. Do đó, nếu tôi băng qua đường đó trong 0,5 t
, tôi đã đi 10 d
mỗi lần t
, vì 5 / 0,5 = 10. Giới hạn tốc độ của đường đó là 10, vì vậy tôi ở trong giới hạn tốc độ.
Nhưng nếu tôi băng qua con đường đó trong 0,25 t
, tôi đã đi 20 d
mỗi lần t
, vì 5 / 0,25 = 20. Giới hạn tốc độ của con đường đó là 10, vì vậy tôi đã đi quá 10 giới hạn tốc độ.
Ví dụ và tính toán
Lưu ý rằng đầu vào 1 là thời gian tôi đi để đi trên đường và đầu vào 2 là đường chính nó.
Đây là một con đường phức tạp:
Input 1: 1.5
Input 2: 5=====10=====
Tốc độ nhanh nhất tôi có thể có (về mặt pháp lý) đã đi trên con đường đầu tiên (5 =
giây đầu tiên ) là 5 d
mỗi lần t
. Vì 5 (khoảng cách) chia cho 5 (giới hạn tốc độ) là 1, nên tốc độ tôi có thể đi nhanh nhất trên con đường đó là 1 t
.
Trên đường tiếp theo, giới hạn tốc độ là 10 và khoảng cách cũng là 5, tốc độ nhanh nhất tôi có thể vượt qua là 0,5 (5/10). Tổng số lần tối thiểu cho kết quả là 1,5, nghĩa là tôi đã đi chính xác giới hạn tốc độ.
Lưu ý: Tôi biết, tôi có thể đã đi rất nhanh trên một con đường và thực sự chậm trên một con đường khác và vẫn vượt qua 1,5, nhưng giả sử tốt nhất ở đây.
Một ví dụ cuối cùng:
Input 1: 3.2
Input 2: 3.0==========20===
Con đường đầu tiên dài 10 và có giới hạn tốc độ là 3, vì vậy thời gian tối thiểu là 3.33333 ... (10/3)
Đường thứ hai dài 3 và có giới hạn tốc độ là 20, vì vậy thời gian tối thiểu là 0,15 (3 / 20.)
Tổng số lần kết quả trong 3,483333333 ... Tôi đã vượt qua nó trong 3,2, vì vậy tôi phải tăng tốc ở đâu đó.
Ghi chú:
- Bạn phải xuất một giá trị riêng biệt nếu tôi chắc chắn đang tăng tốc và một giá trị khác nếu tôi không thể.
- Chương trình hoặc chức năng của bạn có thể yêu cầu đầu vào hoặc đầu ra phải có một dòng mới, nhưng vui lòng nói như vậy trong bài nộp của bạn.
- Đầu vào đầu tiên của bạn sẽ là tốc độ của tôi. Nó sẽ là một số float hoặc số nguyên hoặc chuỗi dương.
- Đầu vào thứ hai của bạn sẽ là con đường. Nó sẽ luôn luôn phù hợp với regex
^(([1-9]+[0-9]*|[0-9]+\.[0-9]+)=+)+\n?$
. Bạn có thể kiểm tra đầu vào tiềm năng ở đây nếu bạn quan tâm. - Bạn có thể nhận đầu vào ở 2 tham số của hàm hoặc chương trình, trong 2 tệp riêng biệt, từ STDIN hai lần hoặc từ chuỗi được phân tách bằng dấu cách được truyền đến STDIN, hàm, tệp hoặc tham số dòng lệnh.
- Nếu bạn muốn, bạn có thể thay đổi thứ tự của đầu vào.
- Có câu hỏi nào không? Hỏi dưới đây trong ý kiến và hạnh phúc mã golf !
^(([1-9]+[0-9]*|(?!0\.0+\b)[0-9]+\.[0-9]+)=+)+\n?$
. (Nó sẽ sạch hơn với một cái nhìn, nhưng sau đó nó sẽ cần .Net engine)