题目链接:
http://codeforces.com/contest/887/problem/B
题解:
100%纯暴力
代码:
#include <map>
#include <cmath>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define met(a,b) memset(a,b,sizeof(a))
#define lchild root<<1,l,mid
#define rchild root<<1|1,mid+1,r
#define inf 0x7fffffff
typedef long long ll;
vector<int> p[3],pp;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(int j=0;j<6;j++)
{
int num;
scanf("%d",&num);
p[i].push_back(num);
}
}
if(n==1)
{
for(int i=0;i<6;i++)
pp.push_back(p[0][i]);
}
else if(n==2)
{
for(int i=0;i<6;i++)
pp.push_back(p[0][i]);
for(int i=0;i<6;i++)
pp.push_back(p[1][i]);
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
pp.push_back(p[0][i]*10+p[1][j]);
pp.push_back(p[1][i]*10+p[0][j]);
}
}
}
else
{
for(int i=0;i<6;i++)
pp.push_back(p[0][i]);
for(int i=0;i<6;i++)
pp.push_back(p[1][i]);
for(int i=0;i<6;i++)
pp.push_back(p[2][i]);
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
pp.push_back(p[0][i]*10+p[1][j]);
pp.push_back(p[1][i]*10+p[0][j]);
pp.push_back(p[1][i]*10+p[2][j]);
pp.push_back(p[2][i]*10+p[1][j]);
pp.push_back(p[0][i]*10+p[2][j]);
pp.push_back(p[2][i]*10+p[0][j]);
}
}
}
sort(pp.begin(),pp.end());
int len=unique(pp.begin(),pp.end())-pp.begin();
map<int,int>mp;
for(int i=0;i<len;i++)
mp[pp[i]]=1;
for(int i=1;i<=99;i++)
{
if(!mp[i])
{
printf("%d\n",i-1);
return 0;
}
}
}