พื้นหลัง
ย้อนกลับไปในช่วงปลายยุค 90/00 แรกเมื่อ Flash Web Design เจ๋งมากจนไม่มีใครสามารถมีชีวิตอยู่ได้โดยไม่ต้องมีเว็บไซต์ Flash ที่สมบูรณ์หรืออย่างน้อยก็เป็นวิดเจ็ตอนิเมชั่นฉันได้รับการว่าจ้างให้พัฒนา ในรูปของแอนิเมชั่นสไตล์วิดีโอเกมยุค 80 ดังนั้นผู้เข้าชมเว็บไซต์ไม่เพียง แต่สามารถอ่านผลการแข่งขันได้เท่านั้น แต่พวกเขายังสามารถดูได้ในแอนิเมชั่นที่เคลื่อนไหว! ว้าว! ที่น่าประทับใจ!
พวกเขาให้ไฟล์ CSV พร้อมรายละเอียดการแข่งขันทั้งหมด: ลำดับเริ่มต้นและชื่อม้าชื่อผู้ขับขี่รางวัลและอื่น ๆ แอพ Flash ของฉันอ่านไฟล์นั้นสำหรับการแข่งขันแต่ละครั้งและแสดงภาพเคลื่อนไหวดังกล่าวข้างต้น
ทุกวันนี้การสนับสนุน Flash ลดลงอย่างมากดังนั้นเราต้องเปลี่ยนกลับเป็นASCII-art !
งาน
งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบที่อ่านข้อมูลการแข่งขันในรูปแบบ CSV จากอินพุตมาตรฐานและส่งออกการแสดง ASCII-art ของการแข่งขันดังที่แสดงในตัวอย่างด้านล่าง
INPUT
ข้อมูล CSV พร้อม 2 ฟิลด์: 1) เริ่มสั่งซื้อ; 2) เวลาถึงที่ Finish ในรูปแบบ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 x
_
ที่แสดงถึง 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
ม้าไม่ใช่หรือไม่ (ฉันรู้ว่านี้ไม่ได้เป็นคำถามที่เหมาะสมในชีวิตจริง แต่นี้เป็นรหัส.)