// File Name: hdu1172.cpp
// Author: rudolf
// Created Time: 2013年04月20日 星期六 14时58分47秒
#include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime>
using namespace std;
const int maxn=101;
bool check1(int num1,int num2,int t)
{
int a[4],b[4];
int c[4];
int i,j;
for(i=0;i<4;i++)
{
a[i]=num1%10;
num1/=10;
b[i]=num2%10;
num2/=10;
c[i]=0;
}
int m=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(c[j]==0&&a[i]==b[j])
{
m++;
c[j]=1;
break;
}
if(m==t)
return true;
else
return false;
}
bool check2(int num1,int num2,int t)
{
int a[4],b[4];
int i,j;
int m=0;
for(i=0;i<4;i++)
{
a[i]=num1%10;
num1/=10;
b[i]=num2%10;
num2/=10;
if(a[i]==b[i])
m++;
}
if(m==t)
return true;
else
return false;
}
int main()
{
int a[maxn],b[maxn],c[maxn];
int ans,tmpe;
int n,i,j;
while(cin>>n,n)
{
for(i=0;i<n;i++)
cin>>a[i]>>b[i]>>c[i];
ans=0;
for(i=1000;i<=9999;i++)
{
for(j=0;j<n;j++)
{
if(check1(i,a[j],b[j])==false)
break;
if(check2(i,a[j],c[j])==false)
break;
}
if(j>=n)
{
ans++;
tmpe=i;
}
if(ans>=2)
break;
}
if(ans==0||ans>=2)
cout<<"Not sure"<<endl;
else
cout<<tmpe<<endl;
}
return 0;
}
ACM HDU 1172 猜数字
最新推荐文章于 2020-06-21 19:16:20 发布