a793. 15. Railway Shunting Crew
標籤 :
通過比率 : 2人/6人 ( 33% ) [非即時]
評分方式:
Tolerant

最近更新 : 2013-10-23 16:39

內容

「鐵路轉軌班」必須將在側軌上的車廂依工作單指示組合成開出的列車。一共有 A, B, C, D 四個側軌。火車頭在 A 側軌的最外側,工作單指定會指定接到車頭的車廂順序。工作單上會標明側軌上的 8 個車廂,用其中的 5 個來組合成列車。車廂只能從 A 側軌移進或移出。比如說,車廂不能直接從側軌 C 移到側軌 D。它必須先從 C 側軌移到 A 側軌 (如果它還有位置的話),再移到側軌 D。換言之,所有的移動都必須以側軌 A 作為起始點或目的地。

請寫一個程式來印出完成工作單所需的步驟。 

輸入說明

每筆測資包含三行,前兩行代表側軌上車廂的初始位置。側軌的配置格式如下:

 

AAAAA+BBBBB
CCC^DDD

 

+ 和 ^ 代表轉轍器。第三行則是列車的組合順序。 

L----+86321

  457^---

L12345

 也可試試這些:

L----+35841

  267^---

L12846

L----+26381

  457^---

L41732  

 

輸出說明
請找出最少需要移動車廂幾次,並印出每一步的側軌狀態,從初始狀態到最後的狀態,每個步驟間空一行。一次只能移動一個車廂。如果有多組解,以下列的優先順序輸出最優先的那組解。A→B, A→C, A→D, B→A, C→A, D→A。在最後的一個狀態中,有一截車廂要佔用 + 這個轉轍器位置,其餘的步驟中皆不得佔用轉轍器。
範例輸入 #1
L----+86321
  457^---
L12345
範例輸出 #1
L----+86321
  457^---

L8---+-6321
  457^---

L86--+--321
  457^---

L867-+--321
  45-^---

L8673+---21
  45-^---

L867-+---21
  453^---

L8672+----1
  453^---

L867-+----1
  453^--2

L8671+-----
  453^--2

L867-+-----
  453^-12

L86--+----7
  453^-12

L8---+---67
  453^-12

L----+--867
  453^-12

L1---+--867
  453^--2

L12--+--867
  453^---

L123-+--867
  45-^---

L1235+--867
  4--^---

L123-+-5867
  4--^---

L1234+-5867
  ---^---

L12345--867
  ---^---

19 moves.
測資資訊:
記憶體限制: 64 MB
提示 :
本題測資未完成,不提供解題。
標籤:
出處:
HP CodeWars2008 [管理者: snail (蝸牛) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」