とある世界のタクシー料金 横へな 2015.4.18 問題

問題

とある世界のタクシーの運賃を計算してほしい。
何もかもだと大変なので、円來市と炭州市という2つの市の範囲だけでよい。
乗り降りする場所はA〜Gだけを考える。
右図の通り。
経路は客が指定する。理不尽な経路(例 : ABABCBA)でも気にしない。

で。
料金体系が円來市と炭州市で異なる。下表の通り。

初乗り 距離加算
円來市 995m までは 400円 200m 進むごとに 60円加算
炭州市 845m までは 350円 200m 進むごとに 50円加算

細かいことを書くと。

ということになっている。

例えば。
A→D→F→C
という経路について考える。

この、510 という値を求めるプログラムを書くのが今回の課題。

入力

入力は、乗車位置と降車位置を含む経路を示す文字列。
ADFC
こんな感じ。
見ての通り、区切り文字などはない。

出力

タクシー料金を普通に10進数で出力する。
510
こんな感じ。
「円」とかはつけない。

補足

サンプルデータ

# 入力 期待
0 ADFC 510
1 CFDA 500
2 AB 460
3 BA 460
4 CD 400
5 DC 350
6 BG 520
7 GB 530
8 FDA 450
9 ADF 450
10 FDACB 750
11 BCADF 710
12 EDACB 800
13 BCADE 810
14 EGFCADE 920
15 EDACFGE 910
16 ABCDA 960
17 ADCBA 1000
18 BADCFGB 1180
19 BGFCDAB 1180
20 CDFC 460
21 CFDC 450
22 ABGEDA 1420
23 ADEGBA 1470
24 CFGB 640
25 BGFC 630
26 ABGEDFC 1480
27 CFDEGBA 1520
28 CDFGEDABG 1770
29 GBADEGFDC 1680

C/C++/Java 用のテストデータ