棋盤的形狀如下,且每一個棋格皆被賦予1~33的編號:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
遊戲的一開始會在某些位置上放置棋子,而其他位置會是空的。遊戲的進行必須不斷的將一個棋子垂直或水平地跨過另一個棋子到另一邊空的位置上,且被跨過的棋子必須被移除,直到沒有辦法再移除多餘的棋子為止,此時你的程式必須回報在棋盤上還有棋子的編號之總和。移動棋子的原則為:儘可能的將棋子移動到編號最大的位置上去,若同時有不同的棋子可移動到相同的地方,請選擇位置編號最大的棋子。
例如下列中以X表示該位置上有棋子:
O O O O O O O O O X O X O O O O X O X O O O O O X O O O O O O O O
其移動的順序為:將12移到26 -> 將25移到27 -> 將10移到24。最後有兩個棋子在24與27的位置上,24+27=51即為所求。
Input
輸入資料的第一列有一個整數N(1 <= N <= 10)表示測試資料的組數,接下來會有N組測試資料,每組資料會依序給定在哪些位置上被放置棋子,其值介於1 ~ 33,並以0表示該組測試資料結束。
Output
輸出資料共有N+2列,頭尾分別輸出"HI Q OUTPUT", "END OF OUTPUT",並在這中間依序輸出每組資料的答案。
Sample Input
4 10 12 17 19 25 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 0
Sample Output
HI Q OUTPUT 51 0 561 98 END OF OUTPUT
原文出處
沒有留言:
張貼留言