あなたは、19世紀のアメリカの鉄道起業家です。列車は、大量の資材を陸路で輸送する最も効率的な手段であるため、人気が高まっています。東海岸から西の最近植民地化された土地を通る鉄道線路に対する国家的なニーズがあります。
このニーズに対応するために、米国政府は鉄道を助成するために税金を徴収する予定です。彼らは敷設された線路のマイルごとにあなたの鉄道会社にお金を払うことを約束しました。丘陵地や山岳地帯にトラックを敷設することは、平らな土地にトラックを敷設するよりも高価なので、彼らはそれに応じて与える量を調整します。つまり、政府は支払います
- 平らな土地に敷設されたトラック1マイルあたり5,000ドル
- 丘陵地に敷設された1マイルあたり12,500ドル
- 山に敷設された1マイルあたり2万ドル。
もちろん、この計画は、トラックを敷設するのに実際にかかる費用を正確に反映していません。
いくつかの地図製作者を雇って、標高を分析するためのトラックを敷設する地域のレリーフマップを描画しました。そのようなマップの1つを次に示します。
S12321
121234
348E96
各数字は1平方マイルの土地を表します。S
は開始点、E
終了点です。各数値は、その地域の標高変化の強度を表します。
- 1〜3番の土地は平坦な土地を構成します。
- 4〜6番の土地は丘陵地を構成しています。
- 7-9番の土地は山脈を構成します。
長年の鉄道線路の構築経験を通じて、線路構築のコスト(ドル単位)は次の式を満たしていると評価されました。
Cost_Per_Mile = 5000 + (1500 * (Elevation_Rating - 1))
つまり、特定の標高勾配に基づいて構築すると、政府が提供するよりも多くのお金が必要になります。場合によっては利益があり、場合によっては損益分岐点になります。
たとえば、標高勾配が3の1マイルのトラックの建設費用は8,000ドルですが、支払われるのは5,000ドルだけなので、3000ドルを失います。対照的に、標高勾配7で1マイルのトラックを構築すると14,000ドルの費用がかかりますが、そのために20,000ドルが支払われ、6,000ドルの利益が得られます。
次に、マップの例と2つの異なる可能なパスを示します。
S29 S#9 S##
134 1#4 1##
28E 2#E 2#E
最初のトラックの建設には30,000ドルかかりますが、政府はそれに対して30,000ドルを支払います。このトラックから利益を得ることはありません。
一方、2つ目のビルドには56,500ドルかかりますが、62,500ドルが支払われます。このトラックから6,000ドルの利益を得ます。
あなたの目標:レリーフマップが与えられたら、最初から最後まで最も収益性の高い(または単に最も安価な)パスを見つけます。複数のパスが結び付けられている場合、それらのいずれかが許容可能なソリューションです。
プログラムの詳細
数値の長方形マップと1つの開始点と終了点で区切られたテキスト入力が与えられます。各数値は1から9までの整数になります。それ以外の理由で、必要に応じて入力を提供できます。
出力は入力と同じ形式である必要があり、トラックが構築された番号はハッシュ(#
)に置き換えられます。気まぐれな政治家によって課せられたarbitrary意的な規制のため、トラックは水平方向または垂直方向にしか移動できません。つまり、バックトラックしたり、斜めに行くことはできません。
プログラムは、最大6行6列のマップの妥当な時間(10分未満)で解決できる必要があります。
これはコードゴルフチャレンジなので、最短のプログラムが勝ちます。
(ゴルフではない)実装例があります。
サンプルI / O
S12321
121234
348E96
S12321
######
3##E##
S73891
121234
348453
231654
97856E
S#3###
1###3#
3#####
######
#####E
4
で134
例のマップであること6
?