猜数字游戏的提示 算法竞赛入门经典

来源:互联网 发布:网络证件在线制作 编辑:程序博客网 时间:2024/04/29 06:54

AC代码:

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<algorithm>using namespace std;int a[1005],b[1005],sign1[1005],sign2[1005],n,sum1,sum2,cas;int main(){    cas=1;    while(1)    {        cin>>n;        if(n==0)            break;        printf("Game %d:\n",cas++);        for(int i=1;i<=n;i++)            scanf("%d",&a[i]);        for(;;)        {            int num=0;            sum1=0;            sum2=0;            memset(sign1,0,sizeof(sign1));            memset(sign2,0,sizeof(sign2));            for(int i=1;i<=n;i++)            {                scanf("%d",&b[i]);                if(b[i])                    num=1;                if(b[i]==a[i])                {                    sum1++;                    sign1[i]=1;//b                    sign2[i]=1;//a                }            }            if(!num)                break;            for(int i=1;i<=n;i++)            {                if(!sign1[i])//b没有占用                {                    for(int j=1;j<=n;j++)                    {                        if(!sign2[j])//a没有占用                        {                            if(b[i]==a[j])                                {                                sum2++;                                sign1[i]=1;                                sign2[j]=1;                                break;                                }                        }                    }                }            }            printf("    (%d,%d)\n",sum1,sum2);        }    }    return 0;}


0 1