會有「起點或終點是危險十字路口」的情況,這種時候答案就是 0。
存取危險十字路口座標時可以把座標點轉換成 0-Base 的座標,這樣子方便走 BFS 的時後比較好判斷。可以使用字串的方式 getline 危險十字路口,並用 For迴圈 將裡面的數字獨立出來存到一個陣列中。需要注意測資中不會按照順序給這些座標,有可能會先給第二行再來是第一行,所以存座標的時候需要使用那一行的第一個數字。
使用 BFS,每次往下或是往右走,並宣告一個二維陣列,裡面的資料預設為 0。跑 BFS 時如果可以往下或往右走,則將下一個點位置的二維陣列值 += 目前位置的二維陣列值。需要注意的是,在存取下一次 BFS 起點的時候不能重複將同一個起點存放到陣列中,所以可以宣告一個 Map 來確認目前要存的起點是否已經被存過了。
答案就是二維陣列中最左下角的那個資料。