Kể từ khi tôi nhìn thấy cái đầu tiên cách đây vài năm, tôi luôn bị khuất phục bởi loại đồng hồ từ này, nơi thời gian thực sự được đánh vần bởi những từ được thắp sáng hoặc không thành một câu có ý nghĩa.
Văn bản hiển thị trên đồng hồ đó là như sau.
IT IS HALF TEN
QUARTER TWENTY
FIVE MINUTES TO
PAST TWO THREE
ONE FOUR FIVE
SIX SEVEN EIGHT
NINE TEN ELEVEN
TWELVE O'CLOCK
Nhiệm vụ của bạn là viết một chiếc đồng hồ làm việc như vậy. Các từ được thắp sáng nếu và chỉ khi chúng có liên quan đến việc in thời gian hiện tại. Mặt khác, chúng sáng lên. Các từ được "thắp sáng" bằng cách được in và được "thắp sáng" bằng cách được thay thế bằng một số khoảng trắng là chiều dài của từ.
Ví dụ: nếu thời gian hiện tại là 17:23, văn bản in phải chính xác như sau:
IT IS
TWENTY
FIVE MINUTES
PAST
FIVE
Quy tắc
- Thời gian in là biến thể 12h, nhưng không có AM / PM.
- Việc làm tròn được thực hiện chỉ dựa trên số phút (giây hoàn toàn không liên quan). Việc làm tròn được thực hiện theo bội số gần nhất của 5. Vì vậy, ví dụ, mặc dù 17:52:38 thực sự là gần nhất với 17:55, nhưng vì các giây không liên quan, 17:52 thực sự được làm tròn xuống 17:50, và văn bản được in là "NÓ LÀ TỪ PHÚT ĐỂ SIX" (với khoảng cách phù hợp). Vì vậy, nếu
XX
là bội số của năm,XX
sẽ được sử dụng từ HH: (XX-2): 00 cho đến khi HH: (XX + 2): 59. TừMINUTES
phải xuất hiện nếuFIVE
,TEN
hoặcTWENTY
được thắp sáng trong phần phút (trước "TO" hoặc "PAST"). - Tất cả các từ không liên quan được thay thế bằng nhiều khoảng trống cần thiết để giữ văn bản nơi nó nằm trong mẫu ở trên. Không gian lưu trữ có thể được cắt. Không gian liên quan để giữ văn bản ở vị trí dự kiến phải được giữ.
Đường kẻ có thể được cắt là tốt. Các dòng trống có liên quan vẫn được yêu cầu xuất hiện. Thí dụ:
IT IS TEN MINUTES PAST TWO
Không bật sáng
TEN
trên dòng đầu tiên hoặcFIVE
trên dòng thứ ba khi các giá trị này đề cập đến giờ.- Bạn có thể chấp nhận một đầu vào. Nếu bạn chấp nhận đầu vào, đầu vào sẽ là thời gian để in ở bất kỳ định dạng hợp lệ nào bạn muốn (chuỗi, danh sách số nguyên, nhập thời gian gốc hỗ trợ ngôn ngữ của bạn, ...), nhưng không được phép tham số nếu chúng không liên quan đến thời điểm để in. Nếu bạn hỗ trợ không có đầu vào, thì bạn phải sử dụng thời gian hiện tại. Nếu bạn hỗ trợ cả hai, điều đó tốt hơn nhưng không có tiền thưởng;)
- Mã của bạn có thể là một chương trình, một chức năng, một lambda nhưng không phải là đoạn trích.
- Nếu ngôn ngữ của bạn hỗ trợ in theo bất kỳ cách nào, nó phải in kết quả (trong một tệp, trên đầu ra tiêu chuẩn, tôi không bận tâm). Nếu ngôn ngữ của bạn không hỗ trợ in theo bất kỳ cách nào, nó được phép chỉ đơn giản là "trả lại" văn bản dự kiến. Kết quả có thể là tất cả chữ hoa hoặc chữ thường, không phải là kết hợp của cả hai.
- Tiêu chuẩn áp dụng.
- Đây là môn đánh gôn, vì vậy đoạn mã ngắn nhất sẽ thắng!
- Trong các biện pháp có thể, vui lòng cung cấp một liên kết đến một thông dịch viên trực tuyến về ngôn ngữ của bạn.
Các trường hợp thử nghiệm
Input: <no input> (the current local time is 19:20)
Output:
IT IS
TWENTY
MINUTES
PAST
SEVEN
Input: 13:15
Output: (empty line is being printed)
IT IS
QUARTER
PAST
ONE
Input: 13:58
Output: (rounding)
IT IS
TWO
O'CLOCK
Input: 14:30
Output: (half is always a edge-case)
IT IS HALF
PAST TWO
Input: 15:35
Output: (light up "TO")
IT IS
TWENTY
FIVE MINUTES TO
FOUR
Input: 10:00
Output: (do not use the TEN or FIVE on the first line when referring to the hours)
IT IS
TEN
O'CLOCK
Input: 12:00
Output: (O'CLOCK and a lot of empty lines)
IT IS
TWELVE O'CLOCK