#532. 「例题3-4」 猜数字游戏的提示 (Master-Mind Hints) 暂未评定

时间限制:3000 ms 内存限制:128 MiB 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: root

题目描述

英文原题pdf

你的任务是实现一个经典的“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(设为 ),有多少数字在两个序列中都出现过但位置不对( )。

输入格式

输入包含多组数据。每组输入第一行为序列长度nn ,第二行是答案序列,接下来是若干行猜测序列。猜测序列全00 时表示该组数据结束。n=0n=0 时输入结束。

输出格式

对于每一组数据,输出的开头应有一行**“Game x:”(没有双引号,x为当前组数据的编号,从1开始递增),然后对于每个猜测序列,输出一组数,格式(A,B),A,B的意义如上所示,注意在(A,B)**之前要输出四个空格符。

样例

样例输入

4
1 3 5 5
1 1 2 3
4 3 3 5
6 5 5 1
6 1 3 5
1 3 5 5
0 0 0 0
10
1 2 2 2 4 5 6 6 6 9
1 2 3 4 5 6 7 8 9 1
1 1 2 2 3 3 4 4 5 5
1 2 1 3 1 5 1 6 1 9
1 2 2 5 5 5 6 6 6 7
0 0 0 0 0 0 0 0 0 0
0

样例输出

Game 1:
    (1,1)
    (2,0)
    (1,2)
    (1,2)
    (4,0)
Game 2:
    (2,4)
    (3,2)
    (5,0)
    (7,0)

提示

1 1 3 5 // 原数据
1 1 2 3 //猜测数据
数字 1 出现在了正确的位置,数字 3 也出现了,但是位置不对。所以答案为(1,1)

数据范围与提示

数据范围


提示

题目大意就是:实现一个经典的“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字正确且位置正确的个数,记为A,有多少数字在两个序列都出现过但位置不对的个数,记为B。
输入包含多组数据。每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列。猜测序列全为0时该组数据结束。n=0是输入结束。

例如 : 1 3 5 5 (答案序列)
1 1 2 3 (猜测序列) 两个序列中的第一个1数字位置匹配成功,A个数加1,往后再没有匹配成功的数字,故A的值为1;
两个序列中的1由于被A“使用过”,故B不接受,所以B只找到与之匹配的3,故B的值为1; 下面的数据以此类推;
A 1 0 0 0
B 0 0 0 1