Фон
В конце 90-х / первых 00-х, когда Flash Web Design был настолько крутым, что никто не мог жить без полноценного Flash-сайта или хотя бы анимированного виджета, я был нанят для разработки «средства просмотра скачек» во Flash / Actionscript, в форме анимации в стиле видеоигр 80-х, чтобы посетители сайта могли не только прочитать результаты гонки, но и увидеть их в движущейся анимации! ВОТ ЭТО ДА! Впечатляет!
Они предоставили мне файл CSV со всеми деталями гонок: порядком старта и прибытия, именами лошадей, именами гонщиков, призами и т. Д. Мое приложение Flash считывало этот файл для каждой расы и отображало вышеуказанную анимацию.
В настоящее время поддержка Flash значительно отклонена, поэтому мы должны вернуться к ascii-art !
задача
Ваша задача - создать полную программу или функцию, которая считывает данные гонки в формате CSV из стандартного ввода и выводит представление гонки в ascii-art, как показано в примере ниже.
ВХОД
Данные CSV с 2 полями: 1) стартовый порядок; 2) время прибытия на финиш в формате 1.13.4
(1 минута 13 секунд 4 секунды). Если временные отчеты R
означают, что лошадь отступила (не закончила гонку) из-за инцидента, падения или по другой причине. Примечание: время прибытия может быть одинаковым для 2 или более лошадей, в этом случае они разделяют позицию прибытия.
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
ВЫВОД
Для каждой строки CSV выведите беговую дорожку следующим образом:
1_|______________4(1.13.0)___________________________
Ипподром состоит из:
1
который является порядком старта лошадей._|
где_
проставка и|
финишная черта.- 50 х,
_
что составляет 50 десятых секунды. 5(1.13.4)
это позиция прибытия с последующим временем прибытия. Это должно быть сделано с учетом разницы во времени между лошадьми. Например: вы позиционируете 1-го прибывшего на финишную прямую вовремя1.11.5
, вторую прибывает во время1.12.1
, разница составляет1.12.1 - 1.11.5 = 6
десятые доли секунды, поэтому вторая лошадь должна располагаться на 6-м персонаже, и так далее. Если разница во времени составляет более 50 десятых секунды (или 5 секунд), вы должны расположить лошадь в конце. То же самое, если лошадьR
(отступил).
Таким образом, весь трек для данных CSV выше должен быть:
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
Там нет необходимости добавлять F=Finish line
, и последняя строка, 0123456789...
которая только для объяснения цели.
Контрольные примеры
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
правила
- Самый короткий код выигрывает.
1
ли считать, что номер минуты всегда будет ?
R
лошадь? (Я знаю, что это не разумный вопрос в реальной жизни, но это код.)