本文同步更新于洛谷博客
前言
这个游戏最近好像挺火的,先附上网址。
题解
我们分别用 x
和 y
来记录绿色和黄色出现的次数。若相同位置上的字母一样,则 x++
;否则我们用两个桶 a
和 b
分别记录正确答案和猜测的方阵中未匹配成功的字母出现的次数。最后遍历所有字母, y+=min(a[i],b[i])
即可。
Code
#include<bits/stdc++.h>
using namespace std;
int a[30],b[30],x,y;
char s[10][5];
int main()
{
for(int i=1;i<=6;i++)
scanf("%s",s[i]+1);
for(int i=4;i<=6;i++)
{
for(int j=1;j<=3;j++)
{
if(s[i][j]==s[i-3][j])
x++;
else
{
a[s[i-3][j]-'A'+1]++;
b[s[i][j]-'A'+1]++;
}
}
}
for(int i=1;i<=26;i++)
y+=min(a[i],b[i]);
printf("%d\n%d",x,y);
return 0;
}