您的位置:首页 > 其它

3-4 Master-Mind Hints (P50)/ UVA - 340

2017-07-19 14:35 417 查看
水题的小细节。。。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
int n,count = 1;
int d[1005],b[1005],Bd[1005],Bb[1005];
while(scanf("%d",&n) == 1)
{
if(n == 0)
break;
int i,j;
for(i = 0;i < n;i++)
scanf("%d",&d[i]);
printf("Game %d:\n",count);

while(1)
{
int A = 0,B = 0;
memset(Bd,0,sizeof(Bd));
memset(Bb,0,sizeof(Bb));

for(i = 0;i < n;i++)
{
scanf("%d",&b[i]);
if(b[i] == d[i])
A++;
}
if(b[0] == 0)
break;

for(i = 1;i <= 9;i++)
for(j = 0;j < n;j++)
{
if(d[j] == i)//designer中,数字i出现了Bd[i]次
Bd[i]++;
if(b[j] == i)
Bb[i]++;
}
//min(Bb[i],Bd[i]) 是某一个数字,在括号的第二位上,能出现的最大次数。
for(i = 1;i <= 9;i++)
{
B += min(Bb[i],Bd[i]);
}
printf("    (%d,%d)\n",A,B-A);
}
count++;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: