#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
int num[105], a[105], b[105];
int vis1[15], vis2[15];
int ss[5];
int isok(int x, int y, int m, int n)
{
int a1, a2, a3, a4, b1, b2, b3, b4, ans1 = 0, ans2 = 0;
a1 = x % 10; a2 = x / 10 % 10; a3 = x / 100 % 10; a4 = x / 1000;
b1 = y % 10; b2 = y / 10 % 10; b3 = y / 100 % 10; b4 = y / 1000;
memset(vis1, 0, sizeof vis1);
memset(vis2, 0, sizeof vis2);
vis1[a1]++;
vis1[a2]++;
vis1[a3]++;
vis1[a4]++;
vis2[b1]++;
vis2[b2]++;
vis2[b3]++;
vis2[b4]++;
if(a1 == b1) ans2++;
if(a2 == b2) ans2++;
if(a3 == b3) ans2++;
if(a4 == b4) ans2++;
for(int i = 0; i < 10; i++)
if(vis1[i] && vis2[i])
ans1 += min(vis1[i], vis2[i]);
if(ans1 == m && ans2 == n)
return 1;
else
return 0;
}
int main()
{
int t, leap, tmp;
while(cin>>t && t)
{
for(int i = 0; i < t; i++)
cin>>num[i]>>a[i]>>b[i];
tmp = 0;
for(int i = 1000; i <= 9999; i++)
{
leap = 0;
for(int j = 0; j < t; j++)
{
if(!isok(i, num[j], a[j], b[j])){
leap = 1;
break;
}
}
if(!leap) {
ss[tmp++] = i;
if(tmp == 2) break;
}
}
if(tmp == 2)
cout<<"Not sure"<<endl;
else
cout<<ss[0]<<endl;
}
return 0;
}
HDU 1172(暴力)
最新推荐文章于 2020-07-04 17:53:28 发布