CF63C Bulls and Cows

题目描述

“Bulls and Cows” 是一款需要两人参与的游戏。一方(出题者)想一个数字,另一方(猜题者)试图猜出这个数字。 出题者想一个四位十进制数字。该数字的所有数位都不相同,数字可以有前导零。由于所有数位都应不同,所以不能有多个前导零。猜题者试图猜出这个数字。他进行一系列猜测,尝试不同的数字,然后根据出题者的回复获知结果,回复格式为“$x$ bulls $y$ cows”。$x$ 代表实验数字中与目标数字在相同位置的数位数量;$y$ 代表实验数字中存在于目标数字、但位置不同的数位数量。当然,实验数字和目标数字都是四位、所有数位都不同(可能有前导零)的数字。 例如,假设出题者想的是 0123。则猜测数字 1263 会得到回复“1 bull 2 cows”(数字 3 在同一位置,1 和 2 存在但位置不同)。对于数字 8103,回复是“2 bulls 1 cow”(1 和 3 在同一位置,0 存在但位置不同)。 当猜测结果是“4 bulls 0 cows”时,游戏结束。 现在,猜题者已经作出了若干次猜测,他想知道自己的下一次猜测是否可能就是最后一次。

输入格式

第一行输入一个整数 $n$($1 \leq n \leq 10$),表示已经猜测的次数。接下来 $n$ 行,每行三个数据“$a_i$ $b_i$ $c_i$”,其中 $a_i$ 是第 $i$ 次猜测的数字,$b_i$ 是 bulls 的数量,$c_i$ 是 cows 的数量($1 \leq i \leq n$,$0 \leq b_i, c_i, b_i+c_i \leq 4$)。每个猜测的数字都是合法的四位、数位各异的数字(可以有前导零),且所有猜测数字互不相同。由于尚未猜中目标数字,输入数据中不会有“4 bulls 0 cows”的情况。

输出格式

如果已有的信息足以唯一确定目标数字,输出该四位数字,若不满四位需补全前导零。如果信息不足,输出“Need more data”。如果出题者的回复本身矛盾,输出“Incorrect data”。

说明/提示

由 ChatGPT 5 翻译