#include <iostream>
using namespace std;
int n = 15;
int shan[15] = {3,3,3,5,5,5,6,6,6,8,8,8,9,9,9};
int m[10] = {0};
double a3 = 0, a7 = 0;
void Display(int p)
{
int i;
double left = 1;
if (p < n-1){
for (i = n-p-1; i > 0; i--){
left*= i;
}
}
if (p == n - 1){
return;
}
int temp;
for (i = p; i < n; i++){
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
m[shan[p]] = 1;
if (m[3]){
a3+=left;
m[shan[p]] = 0;
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
continue;
}
if ((m[5]&&m[6]) || (m[6]&&m[8]) || (m[8]&&m[9])){
a7+=left;
m[shan[p]] = 0;
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
continue;
}
Display(p+1);
m[shan[p]] = 0;
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
}
return;
}
int main()
{
Display(0);
cout << "a3=" << a3 << " " << "a7=" << a7 << endl;
return 0;
}
using namespace std;
int n = 15;
int shan[15] = {3,3,3,5,5,5,6,6,6,8,8,8,9,9,9};
int m[10] = {0};
double a3 = 0, a7 = 0;
void Display(int p)
{
int i;
double left = 1;
if (p < n-1){
for (i = n-p-1; i > 0; i--){
left*= i;
}
}
if (p == n - 1){
return;
}
int temp;
for (i = p; i < n; i++){
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
m[shan[p]] = 1;
if (m[3]){
a3+=left;
m[shan[p]] = 0;
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
continue;
}
if ((m[5]&&m[6]) || (m[6]&&m[8]) || (m[8]&&m[9])){
a7+=left;
m[shan[p]] = 0;
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
continue;
}
Display(p+1);
m[shan[p]] = 0;
temp = shan[i]; shan[i] = shan[p]; shan[p] = temp;
}
return;
}
int main()
{
Display(0);
cout << "a3=" << a3 << " " << "a7=" << a7 << endl;
return 0;
}