编程题
假银币 ## 来源 East Central North America 1998 (ZOJ1184, POJ1013) ## 题目描述 有12枚银币,其中一枚是假的,它的颜色和大小跟真的银币是一样的,无法分辨。假银币的重量跟真银币的重量不一样,但并不知道假银币比真银币重还是轻。有一台很精确的天平,允许称三次,从而找出假银币。例如,如果在天平的两边各放一枚银币,天平是平衡的,那就知道这两块银币是真的。进一步,如果将其中一块真银币和第三枚银币放到天平上,而天平不平衡,那就知道第3枚银币是假银币,并且可以得知假银币比真银币轻还是重:如果假银币所在的一侧是下沉的,则它比真银币重,否则比真银币轻。测试数据保证3次称重就能找出假银币。 ## 输入描述 输入文件的第1行为正整数n,代表测试数据的数目。每个测试数据占三行,每一行代表一次称重。12枚银币标记为字母A~L。每一次称重用两个字符串和一个单词表示。第一个字符串代表天平左边的银币,第2个字符串代表天平右边的银币。总是在天平的两边放同样多的银币。单词为“up”、“down”或“even”,表示此次称重天平右边是上浮、下沉还是跟左边平衡。 ## 输出描述 对每个测试数据,输出必须表明哪个字母对应的银币是假银币,并且告知假银币比真银币重还是轻。输出格式如样例输出所示。输入数据保证每个测试数据的解是唯一的。 ## 样例输入 ```txt 2 ABCD EFGH even ABCI EFJK up ABIJ EFGH even ABCDEF GHIJKL up ABHLEF GDIJKC down CD HA even ``` ## 样例输出 ```txt K is the counterfeit coin and it is light. L is the counterfeit coin and it is light. ```
查看答案
赣ICP备20007335号-2