Фон
Ще в кінці 90-х / перших 00-х, коли веб-дизайн Flash був настільки крутим, що ніхто не міг жити, не маючи повного веб-сайту 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
кінь? (Я знаю, що це не розумне питання в реальному житті, але це код.)