Lý lịch
Quay trở lại vào cuối những năm 90/00 đầu tiên khi Flash Web Design tuyệt vời đến mức không ai có thể sống mà không có trang web Flash đầy đủ hoặc ít nhất là một tiện ích hoạt hình, tôi được thuê để phát triển "trình xem cuộc đua ngựa" trong Flash / Actioncript, trong hình dạng của một trò chơi điện tử theo phong cách trò chơi điện tử của thập niên 80, vì vậy khách truy cập của trang web không chỉ đọc kết quả cuộc đua mà còn có thể thấy nó trong một hình ảnh động chuyển động! Ôi! Ấn tượng!
Họ cung cấp cho tôi tệp CSV với tất cả các chi tiết về chủng tộc: thứ tự bắt đầu và đến, tên ngựa, tên người lái xe, giải thưởng, v.v. Ứng dụng Flash của tôi đọc tệp đó cho mỗi cuộc đua và hiển thị hình động nói trên.
Ngày nay, hỗ trợ Flash bị giảm đáng kể, vì vậy chúng tôi phải trở lại ascii-art !
Bài tập
Nhiệm vụ của bạn là tạo ra một chương trình hoặc chức năng đầy đủ để đọc dữ liệu cuộc đua ở định dạng CSV từ đầu vào tiêu chuẩn và đưa ra một đại diện nghệ thuật của cuộc đua như trong ví dụ dưới đây.
ĐẦU VÀO
Dữ liệu CSV với 2 trường: 1) thứ tự bắt đầu; 2) thời gian đến tại Kết thúc ở định dạng 1.13.4
(1 phút, 13 giây, 4 phần mười giây). Nếu báo cáo thời gian R
có nghĩa là con ngựa bị rút lui (không hoàn thành cuộc đua) do sự cố, ngã hoặc lý do khác. Lưu ý: Thời gian đến có thể giống nhau cho 2 con ngựa trở lên, trong trường hợp này chúng có chung vị trí đến.
1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9
ĐẦU RA
Đối với mỗi hàng CSV, hãy xuất một đường đua như thế này:
1_|______________4(1.13.0)___________________________
Đường đua được sáng tác bởi:
1
đó là những con ngựa bắt đầu trật tự._|
trong đó_
là một miếng đệm và|
là dòng kết thúc.- 50 x
_
đại diện cho 50 phần mười giây. 5(1.13.4)
đó là vị trí đến theo sau là thời gian đến. Điều này phải được định vị tôn trọng sự khác biệt thời gian giữa những con ngựa. Ví dụ: bạn định vị vị trí thứ 1 đến trên dòng Kết thúc tại thời điểm1.11.5
, lần thứ hai đến đúng lúc1.12.1
, sự khác biệt là một1.12.1 - 1.11.5 = 6
phần mười giây, do đó, con ngựa thứ hai nên được định vị ở ký tự thứ 6, v.v. Nếu chênh lệch thời gian là hơn 50 phần mười giây (hoặc 5 giây), bạn phải định vị con ngựa ở cuối. Tương tự nếu con ngựa làR
(Rút lui).
Vì vậy, toàn bộ đường đua cho dữ liệu CSV ở trên phải là:
F=Finish line
1_|____________________________5(1.13.4)_____________
2_|______________4(1.13.0)___________________________
3_|__________________________________________________R
4_|___________3(1.12.7)______________________________
5_1(1.11.5)__________________________________________
6_|____________________________5(1.13.4)_____________
7_|_____2(1.12.1)____________________________________
8_|__________________________________________________6(1.17.9)
012345678901234567890123456789012345678901234567890
Không cần thêm F=Finish line
, và dòng cuối cùng 0123456789...
chỉ dành cho mục đích giải thích.
Các trường hợp thử nghiệm
RACE:
1,1.14.9
2,R
3,R
4,1.14.2
5,1.15.2
6,1.15.3
7,1.15.3
RACE:
1,1.13.6
2,1.13.8
3,R,
4,1.15.9
5,1.13.8
6,R,
7,1.14.4
8,1.15.6
9,1.14.1
10,1.13.9
11,1.13.2
12,1.14.3
13,1.15.0
RACE:
1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9
RACE:
1,1.17.3
2,1.20.4
3,1.17.0
4,1.18.8
5,1.18.5
6,1.18.4
7,1.18.4
8,1.17.8
9,1.18.3
10,1.18.7
11,R
RACE:
1,1.17.5
2,R
3,1.17.7
4,1.16.9
5,1.16.1
6,1.18.9
RACE:
1,1.12.8
2,1.13.0
3,1.13.2
4,1.12.7
5,1.11.5
6,1.13.0
7,1.12.1
8,1.12.8
Quy tắc
- Mã ngắn nhất sẽ thắng.
1
không?
R
con ngựa không? (Tôi biết đây không phải là một câu hỏi hợp lý trong cuộc sống thực, nhưng đây là mã.)