#P3049. Securing the Barn

Securing the Barn

题目描述

农夫约翰在牛棚上安装了一个新的安全系统,现在需要为牛群设置一个有效的密码。一个有效的密码需要满足以下条件:

  1. L3L15L(3 ≤ L ≤ 15)个不同的小写字母(来自传统的拉丁字母集a...z 'a'...'z')组成。
  2. 至少包含一个元音字母a,e,i,o,u('a', 'e', 'i', 'o', 或 'u')
  3. 至少包含两个辅音字母(非元音字母)。
  4. 字母必须按字母顺序排列(例如,"abcabc" 是有效的;"bacbac" 是无效的)。

给定密码长度LLCC个小写字母,编写一个程序,输出所有由这些字母组成的长度为LL的有效密码。密码必须按字母顺序逐行输出。

输入格式

  • 11行:两个用空格分隔的整数,LLCC
  • 22行:CC个用空格分隔的小写字母,表示可用于构建密码的字母集合。

输出格式

  • 若干行:每行输出一个长度为LL的密码(不含空格)。所有输出行必须按字母顺序排列。

输入样例

4 6
a t c i s w

输出样例

acis
acit
aciw
acst
acsw
actw
aist
aisw
aitw
astw
cist
cisw
citw
istw

提示

输入解释: 从给定的6个字母中选出长度为4的密码。

来源

USACO 2005年11月青铜组