子題 2.
在一張地圖上標示有 8個城市,分別稱為「城市 1」到「城市 8」。假設地圖上存在若干單行道,這些單行道直接連接 1個起點城市及 1個終點城市。我們以「二維陣列」表示地圖上的城市及單行道的關係:我們設定一個二維陣列,假設陣列名稱為 a,而 a(i,
j)表示陣列中的元素,其中 i和 j的值介於 1和 8之間。當 a(i,
j)=1時,表示存在一條直接從「城市 i」到「城市 j」的單行道;若 a(i,
j)=0,表示不存在此單行道。問題:在一個給定的陣列資料中,判斷是否存在「正好經過 3條單行道」的道路,該道路從特定的「起點城市」開始,並且在特定的「終點城市」結束。
【註 1】同一條單行道可以在求解的「3條單行道」中重覆使用。
【註 2】若選手找出的道路只使用 1條或 2條單行道,都「不能算」存在此道路。在本題中,
必須是「正好使用 3條單行道」才能算是存在此道路。
【註 3】為了說明方便,題目中假設陣列名稱為 a,但選手撰寫程式時不限定陣列之命名。
輸入說明:第 1~8行表示城市陣列的元素,每一行分為 8個元素,以「逗號」區隔。第 i行的第 j個元素,表示 a(i,
j)的值。例如:第 1行的第 1個元素,表示 a(1,
1)的值;第 1行的第 2個元素,表示 a(1,
2) 的值;第 2行的第 1個元素,表示 a(2,
1) 的值,其餘類推。第 9、10、11、12行,每行分別有 2個元素,也是以「逗號」區隔,表示選手需要檢查的 1組「起點城市」及「終點城市」編號(其值均介於 1和 8之間)。每個檔案檢查 4組資料。
輸出說明:共輸出 4行結果,依序表示輸入檔的 4組起訖城市,是否存在「正好經過 3條單行道」的道路?有則輸出「有路徑」,沒有則輸出「沒路徑」。
輸入檔案 1:【檔名:in1.txt】
0, 1, 1, 0, 1, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 1, 1, 0
0, 1, 0, 0, 0, 1, 0, 1
0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 1, 0, 0, 0
0, 1, 0, 1, 0, 0, 0, 0
0, 0, 1, 1, 0, 0, 0, 0
1, 5
2, 3
3, 8
4, 1
輸入檔案 2:【檔名:in2.txt】
0, 0, 1, 0, 1, 0, 1, 0
0, 0, 0, 0, 1, 1, 0, 0
0, 0, 0, 0, 0, 1, 0, 1
0, 0, 0, 0, 0, 0, 1, 0
0, 0, 0, 1, 0, 1, 0, 0
0, 0, 0, 0, 0, 0, 1, 0
0, 0, 0, 0, 0, 0, 0, 1
1, 1, 0, 0, 0, 0 ,0, 0
1, 7
2, 5
3, 6
4, 7
輸出檔案:【檔名:out.txt】
有路徑
沒路徑
有路徑
沒路徑
有路徑
沒路徑
有路徑
沒路徑