题解:
题意书上已经有了,做的时候用了map来保存没有匹配上的数字,简单模拟题,代码如下
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <map>
using namespace std;
int code[1010];
int main() {
//freopen("in.txt","r",stdin);
//freopen("output.txt","w",stdout);
int n;
int rnd = 0;
while(scanf("%d",&n) == 1 && n){
for(int i = 0; i < n; i++){
scanf("%d",&code[i]);
}
int num;
printf("Game %d:\n",++rnd);
while(scanf("%d",&num) == 1){
int tmp[1010];
memset(tmp,0,sizeof(tmp));
map<int,int> g;
int sto = 0,wea = 0;
if(num == code[0]){sto++; tmp[0] = 1;}
else g[num] = 1;
for(int i = 1; i < n; i++){
scanf("%d",&num);
if(num == code[i]){sto++; tmp[i] = 1;}
else g[num] = g.count(num)?g[num]+1:1;
//cout << g[num] << endl;
}
if(num == 0) break;
for(int i = 0; i < n; i++){
if(tmp[i] == 1) continue;
if(g.count(code[i]) && g[code[i]])
{wea += 1;g[code[i]]--;}
}
printf(" (%d,%d)\n",sto,wea);
}
}
return 0;
}