Bạn có thể giúp Tony Stark trở thành Người sắt không?


8

Tony Stark, như chúng ta đã biết Ironman (anh chàng siêu tuyệt vời trong bộ đồ kim loại và vô số vũ khí). Tuy nhiên, không có bộ đồ kim loại, anh ta không thể yêu cầu danh hiệu đó. Tony Stark, có một cái tôi tuyệt vời, muốn hoàn thành Norseman , được coi là môn ba môn phối hợp khó nhất trên thế giới (đối với khoảng cách tương đương với một chủng tộc Người sắt), để chứng minh rằng anh ta là một cỗ máy trung bình, ngay cả khi anh ta rời khỏi bàn ủi ở nhà.

Tony có một lịch trình / kế hoạch thời gian được xác định trước cho từng phần của cuộc thi.
Điều đó có nghĩa là đối với mọi địa điểm trong cuộc đua (tức là khoảng cách từ khi bắt đầu), có một thời gian dự kiến ​​anh ấy sẽ đến đó dựa trên lịch trình.

Ông cũng có một chiếc đồng hồ cho biết thời gian sử dụng và tổng khoảng cách được bảo hiểm.

Nhiệm vụ của bạn là: Đưa ra hai giá trị đó làm đầu vào, hãy cho Tony biết anh ấy đi trước bao nhiêu hoặc chậm so với lịch trình. Đầu vào sẽ là một khoảng thời gian trên định dạng hh:mm:ss(hoặc (tùy chọn) h:mm:ssnếu dưới 10 giờ) và một số thập phân cho biết anh ta đã đi được bao xa (tính bằng km).

Khoảng cách cho mỗi trong ba môn học là:

Swim: 3.8 km
Bike: 180 km
Run: 42 km
Total distance: 225.8 km   // Input will never exceed 225.8

Thời gian ước tính cho mỗi phần (tức là lịch trình):

Swim: 1:20:00
Transition 1: 0:12:00
Bike: 7:10:00
Transition 2: 0:05:00
Run: 4:50:00
Total: 13:37:00

Cả hai khoảng cách và thời gian ước tính được đưa ra trước cuộc đua, và do đó có thể được mã hóa cứng. Vùng chuyển tiếp chỉ là nơi anh ta thay đổi quần áo và thiết bị, vì vậy anh ta không di chuyển trong quá trình chuyển đổi.

Đầu vào có thể được phân tách bằng dấu phẩy, một chuỗi, hai đối số riêng biệt hoặc bất cứ điều gì thuận tiện nhất trong ngôn ngữ của bạn. Anh ta muốn đầu ra ở định dạng +/-mm:ss, không phải giờ (giả sử anh ta không bao giờ quá một giờ quá chậm hoặc quá nhanh. Nếu anh ta đang trong quá trình chuyển đổi, bạn có thể cho rằng anh ta đã đến đó.

Ví dụ và giải thích (xin lỗi về độ dài của nó):

Input: 04:32:20 93.8
Output: +34:40 / 34:40

Ở 93,8 km, anh đã hoàn thành việc bơi, trải qua quá trình chuyển đổi và đã hoàn thành một nửa chân xe đạp. Theo lịch trình, điều này nên có anh ta : 1:20:00 + 0:12:00 + (0.5 * (07:10:00)) = 5:07:00. Nếu anh ta đã sử dụng 4:32:20, thì anh ta 34:40đi trước thời hạn.


Input: 1:20:00 3.8
Output: +00:00 / +0:00 / 00:00 / 0:00 / -00:00 / -0:00

Giả sử khoảng cách là 3.8, bạn có thể cho rằng anh ta vừa vào vùng chuyển tiếp đầu tiên. Thời gian ước tính ở đây là 1:20:00, vì vậy đối với đầu vào ở trên, anh ấy đúng giờ.


Nếu thời gian là 1:25:00, thì anh ta chậm hơn 5 phút so với lịch trình, do đó:

Input: 1:25:00 3.8
Output: -05:00 / -5:00

Một ví dụ khác, được giải thích chi tiết:

Input: 10:33:46 198.14

Vì vậy, một khoảng cách 198,14 km đã được bảo hiểm. Điều đó có nghĩa là anh ta đã hoàn thành việc bơi (3,8), chân xe đạp (180 km) và 14,34 km chạy, và anh ta đã trải qua cả hai lần chuyển tiếp. Theo lịch trình, anh ta nên bắt đầu chạy sau : 1:20:00 + 0:12:00 + 07:10:00 + 0:05:00 = 8:47:00. 42 km chạy sẽ mất 4:50:00, do đó, 14,34 km sẽ mất : 4:50:00 * (14.34 / 42) = 1:39:01. Vì vậy, theo kế hoạch, 198,14 km nên mất : 8:47:00 + 1:39:01 = 10:26:01. Ông đã sử dụng 10:33:46, đó là 07:45nhiều hơn so với kế hoạch.

Output: -07:45 / -7:45   

Dấu cộng là tùy chọn, nhưng phải có dấu trừ nếu anh ta chậm tiến độ.

Đầu ra phải có định dạng chính xác giống như các ví dụ ở trên, nhưng dấu cách, dòng mới, v.v ... đều ổn.

Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte sẽ thắng.

Câu trả lời:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.