优质的杭州网站优化,电子商务网站有哪些,网站开发工程师 面试英语,注册域名之后怎么建网站Farmer John给谷仓安装了一个新的安全系统#xff0c;并且要给牛群中的每一个奶牛安排一个有效的密码。一个有效的密码由L(3 L 15)个小写字母(来自传统的拉丁字母集a...z)组成#xff0c;至少有一个元音(a, e, i, o, 或者 u)#xff0c;至少两个辅音(除去元音以外…Farmer John给谷仓安装了一个新的安全系统并且要给牛群中的每一个奶牛安排一个有效的密码。一个有效的密码由L(3 L 15)个小写字母(来自传统的拉丁字母集a...z)组成至少有一个元音(a, e, i, o, 或者 u)至少两个辅音(除去元音以外的音节)并且有按字母表顺序出现的字母(例如abc是有效的而bac不是) 。 给定一个期望长度L和C个小写字母写一个程序打印出所有的长度为L、能由这些字母组成的有效密码。密码必须按字母表顺序打印出来一行一个。
输入格式
第一行: 两个由空格分开的整数L和C。 第二行: C个空格分开的小写字母密码是由这个字母集中的字母来构建的。
输出格式
输出若干行每一个输出行包括一个长度为L个字符的密码(没有空格)。输出行必须按照字母顺序排列。 如果计算出超过25000个有效密码你的程序只需输出前25000个有效密码即使后面还存在有效密码。
#includebits/stdc.h
using namespace std;
int n,m,cnt;
char a[1005],s[1005];
string b;
bool check(){bool f0;int sum0;for(int i0;im;i){if(b[i]a || b[i]e || b[i]i || b[i]o || b[i]u)f1;else sum;}if(sum2)f0;return f;
}
void dfs(int d,int x){if(cnt24999)exit(0);s[d]x;if(dm){for(int i1;im;i){ba[s[i]];}if(check()){coutbendl;cnt;}b;return;}for(int ix1;in-md1;i){dfs(d1,i);}
}
int main(){cinmn;for(int i1;in;i){cina[i];}sort(a1,an1);dfs(0,0);return 0;
}