【問題K15】有趣的猜數字遊戲。 [回頁]

有一種猜數字的遊戲,由比賽雙方各訂下一個四位數的秘密號碼,這個號碼選取的標準是每個位數的數字必須為1至9之間且不相同的數字,比賽開始由一方猜對方號碼,對方則依據所猜的號碼與自己的秘密號碼比對,回答所猜號碼之正確性,而回答之規則如下:

假如所猜號碼與秘密號碼有任何位數(個十百千位)相同,則以A來表示。假如所猜號碼與秘密號碼有數字相同,但所在位置不同,則以B來表示。例如:秘密號碼為1234,則:

猜5678,則回答0A0B。

猜1357,則回答1A1B。

猜1243,則回答2A2B。 

如此由比賽雙方輪流向對方發問,並經由所得到的回答來分析歸納以猜出對方的秘密號碼,以先猜對者為優勝。 

現在你正與朋友進行這個緊張鬥智的猜數字遊戲,比賽以進行到最後階段,你已經猜中對手秘密號碼的全部數字(digits),只是這些數字位置不對,請你寫一個程式來分析對方所給的所有資料,來解出所有可能的正確答案!

輸入檔說明

輸入檔中有一組或一組以上的資料。每一組的資料是先給* 表示資料開始,以**表示本組資料結束,最後並以***表示檔案結束 ,每一行資料前四碼為你猜的號碼,緊接著為對方的回答,所有給予的資料皆為猜中四碼的情形,每一筆資料皆為對方誠實回答的資料。(所有英文字母均為大寫)。

輸出檔說明

請將每組比賽資料可能的正確答案(至少有一組)由小至大順序列出,每一個答案一列,並以*  為每組答案的開始以及**為每組答案的結束,最後以*** 為整個檔案輸出的結束。

範例輸入

*

4765  2A2B

6745  0A4B

**

*

4756  1A3B

7654  0A4B

**

***

範例輸出

*

4567

**

*

4765

5476

6745

**

***