7220 - PJ - Infected Land   

Description

地球正遭受死亡病毒的攻擊。幸運地,衛生署成功的把病毒的感染侷限在一格一格的區塊裡。接著,公衛專家成功地發現了病毒感染區塊的傳遞規則。在每一天,每個區塊的狀態是取決於與它相鄰的8個區塊的狀態(垂直、水平、對角線)
1. 當一個受感染區塊有2或3個相鄰感染區塊,則此區塊將會維持感染狀態
2. 當一個未感染區塊有正好3個相鄰感染區塊,則此區塊將會成為感染狀態
3. 若非上述兩個案例,則此區塊將會成為未感染狀態
你的任務就是抵抗病毒及恢復所有區塊。衛生署派一台抗毒原形機器人給你操作。這機器的功能總結如下:
1. 每一天的開始,你移動這台機器到相鄰8個區塊的其中1個區塊,但不允許移動到受感染的區域。而且不允許停留在原地。
2. 機器移動完之後,除了機器所在的區塊以外的所有區塊遵照上述傳遞規則進行病毒傳遞
特別的是,機器所在的土地將無視病毒傳遞規則,即使它有正好3個相鄰感染區塊。不幸的是,機器的防毒功能並不會殘餘下來。所以只要機器離開此區塊,此區塊還是有可能會被感染。
以下有一個範例,@是機器,#是病毒。

你的任務是操控機器人移動,在最少天數下,使所有區塊恢復原狀。

Input

有多組測資。Input的最後一行是單一個0。
每組測資的格式是

n為邊長,整片土地是n*n個區塊組成的。(1<=n<=5)
剩餘的部份是n行,每行有n個字元。
每個字元表示此區塊的最初狀態:’#’代表受感染,’.’代表未感染,’@’代表機器人的初始位置。整張圖只會有一個’@’

Output

對於每組測資,輸出可達成恢復所有區塊的最少天數。
如果找不到一連串的操作可以恢復所有區塊,則輸出-1

Sample Input  Download

Sample Output  Download

Tags




Discuss