バックグラウンド
90年代後半/最初の00年代には、Flash Webデザインが非常にクールで、完全なFlash Webサイト、または少なくともアニメーションウィジェットがないと生きていけなかったため、Flash / Actionscriptで「競馬ビューア」を開発するために雇われました。 80年代のビデオゲームスタイルのアニメーションの形をしているため、サイトの訪問者はレース結果を読むだけでなく、動くアニメーションでそれを見ることができました。うわー!印象的!
彼らは私にすべてのレースの詳細を含むCSVファイルを提供しました:開始と到着の順番、馬の名前、ドライバーの名前、賞品など。私のフラッシュアプリは各レースでそのファイルを読み取り、上記のアニメーションを表示しました。
現在、Flashのサポートは大幅に減少しているため、ascii-artに戻す必要があります。
仕事
あなたの仕事は、以下の例に示すように、標準入力からレースデータをCSV形式で読み取り、レースのASCIIアート表現を出力する完全なプログラムまたは関数を作成することです。
入力
2つのフィールドを持つCSVデータ:1)開始順序。2)フィニッシュでの到着時刻1.13.4(1分、13秒、1/10秒)。時間の報告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の
_10分の1秒を表す50 x 。 5(1.13.4)つまり、到着位置とそれに続く到着時刻です。これは、馬間の時間差を考慮して配置する必要があります。たとえば、最初に到着したフィニッシュラインに最初に到着した位置、1.11.52番目に到着した時間1.12.1、時間の差は1.12.1 - 1.11.5 = 610分の1秒なので、2番目の馬は6番目のキャラクタに位置するというようになります。時間差が10分の1秒(または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思いますか?(私はこれが現実の生活では賢明な質問ではないことを知っていますが、これはコードです。)