满足题意的情况很少,手动枚举即可
/*
ID: xsy97051
LANG: C++
TASK: crypt1
*/
#include <iostream>
#include<cstdio>
#include <cstring>
#include<map>
using namespace std;
map<int,int> num;
bool iscow( int t )
{
int extra;
while( t!=0 ){
extra=t%10;
if( !num[extra] )
return 0;
t/=10;
}
return 1;
}
int solve()
{
int t1,t2,ans,count=0;
for( int i=100;i<999;i++ )
{
if( !iscow(i) ) continue;
for( int j=10;j<99;j++ )
{
if( !iscow(j) ) continue;
t1=i*(j%10);
if( t1>999 ) continue;
if( !iscow(t1) ) continue;
t2=i*(j/10);
if( t2>999 ) continue;
if( !iscow(t2) ) continue;
ans=t1+t2*10;
if( ans>9999 ) continue;
if( !iscow(ans) ) continue;
count++;
}
}
return count;
}
int main()
{
freopen("crypt1.in","r",stdin);
freopen("crypt1.out","w",stdout);
int n;
cin>>n;
for( int i=1;i<=n;i++ )
{
int t;
cin>>t;
num[t]=1;
}
cout<<solve()<<endl;
return 0;
}