hdu 1172 猜数字

来源:互联网 发布:淘宝美工怎么优化店铺 编辑:程序博客网 时间:2024/04/29 07:00

水题。枚举。

#include<iostream>#include<stdio.h>using namespace std;int num[105],A[105],B[105];bool pan(int a,int b,int c,int d){int numa[5],numb[5],used[5];int i=1,count,j;while(a!=0){numa[i]=a%10;i=i+1;a=a/10;}i=1;while(b!=0){numb[i]=b%10;i=i+1;b=b/10;}count=0;for(i=0;i<=4;i++)used[i]=0;for(i=1;i<=4;i++)if(numa[i]==numb[i])count=count+1;if(count!=d)return false;count=0;for(i=1;i<=4;i++)for(j=1;j<=4;j++)if(numa[i]==numb[j]&&used[j]==0){count=count+1;used[j]=1;break;}if(count!=c)return false;return true;}int main(){int n,i,count,judge,j,ok;while(scanf("%d",&n)){if(n==0)break;for(i=1;i<=n;i++)scanf("%d%d%d",&num[i],&A[i],&B[i]);count=0;for(i=1000;i<=9999;i++){judge=0;for(j=1;j<=n;j++){if(pan(i,num[j],A[j],B[j])==false)judge=1;if(judge==1)break;}if(judge==0){count=count+1;ok=i;}}if(count==1)cout<<ok<<endl;else cout<<"Not sure"<<endl;}return 0;}


原创粉丝点击