题解
2023-03-31 21:46:38
发布于:上海
236阅读
0回复
0点赞
#include <bits/stdc++.h>
#define R register
#define us unsigned
#define ll long long
int read()
{
int s = 0,w = 1;
char c = getchar();
while (c < '0' || c > '9')
{
if (c == '-')
{
w = -1;
}
c = getchar();
}
while (c >= '0' && c <= '9')
{
s = s * 10 + c - '0';
c = getchar();
}
return s * w;
}
void print(int x)
{
if (x < 0)
{
putchar('-');
x =- x;
}
if (x >= 10)
{
print(x / 10);
}
putchar(x % 10 + '0');
return;
}
using namespace std;
char begin(int n)
{
if (n==2)return 'a';
if (n==3)return 'd';
if (n==4)return 'g';
if (n==5)return 'j';
if (n==6)return 'm';
if (n==7)return 'p';
if (n==8)return 't';
if (n==9)return 'w';
}
char end(int n){
if(n==2)return 'c';
if(n==3)return 'f';
if(n==4)return 'i';
if(n==5)return 'l';
if(n==6)return 'o';
if(n==7)return 's';
if(n==8)return 'v';
if(n==9)return 'z';
}
int main(){
int n;
char a[100005],b[100005];
int sum=1;
cin>>n;
for(int i=1,t;i<=n;i++){
cin>>t,sum*=t==9||t==7?4:3;
a[i]=begin(t);
b[i]=end(t);
}
cout<<sum<<endl;
if(n==1){
for(char c=a[1];c<=b[1];c++)putchar(c),putchar('\n');
}
else if(n==2){
for(char c=a[1];c<=b[1];c++){
for(char d=a[2];d<=b[2];d++)cout<<c<<d<<endl;
}
}
else if(n==3){
for(char c=a[1];c<=b[1];c++){
for(char d=a[2];d<=b[2];d++){
for(char e=a[3];e<=b[3];e++)cout<<c<<d<<e<<endl;
}
}
}
else if(n==4){
for(char c=a[1];c<=b[1];c++){
for(char d=a[2];d<=b[2];d++){
for(char e=a[3];e<=b[3];e++)for(char f=a[4];f<=b[4];f++)cout<<c<<d<<e<<f<<endl;
}
}
}
else{
for(char c=a[1];c<=b[1];c++){
for(char d=a[2];d<=b[2];d++){
for(char e=a[3];e<=b[3];e++)for(char f=a[4];f<=b[4];f++)for(char h=a[5];h<=b[5];h++)cout<<c<<d<<e<<f<<h<<endl;
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个