當支票被掃描後,影像處理軟體會把數字以ASCII字元的 | 與 _ 作輸出,其數字的輸出看起來像這樣:
銀行帳號會有9位數字並包含一位檢查碼(checksum),一個有效的帳號會滿足下列等式:(d1 + 2*d2 + 3*d3 + ... + 9*d9) mod 11 = 0。一個帳號的九位數字為:d9d8d7d6d5d4d3d2d1。
不過掃描器有時會出錯,導致一些直或橫槓遺失,本題請你寫一個程式推測原來的帳號為何,並假設:
- 若輸入資料本身即為有效的帳號,且它就是正確的帳號。
- 最多只有一個位數會被誤判。
- 被掃描的影像不會有額外的直槓或橫槓。
例如下列數字實際上應該為123456789。
_ _ _ _ _ _ _ | _| _||_||_ |_ ||_||_| | _ _| | _||_| ||_| _|
Input Specification
輸入資料的第一列會有一個整數表示測試資料的組數,每組資料一個帳號,分別以一列27個字元,共三列來表示。
Output Specification
若可以推測出正確的帳號則請輸出該帳號的九位數字,若找不到任一組可能的解則請輸出"failure",若有多組可能的解則輸出"ambiguous"。
Sample Input
4 _ _ _ _ _ _ _ | _| _||_||_ |_ ||_||_| | _ _| | _||_| ||_| _| _ _ _ _ _ _ _ |_||_|| || ||_ | | ||_ | _||_||_||_| | | | _| _ _ _ _ _ _ _ _ _ |_||_||_||_||_||_||_||_||_| |_||_||_||_||_||_||_||_||_| _ _ _ _ _ _ _ _ |_| ||_||_||_||_||_||_||_| |_| ||_||_||_||_||_||_||_|
Sample Output
123456789 ambiguous failure 878888888
原文出處
沒有留言:
張貼留言