编程题
单词重组
## 来源
Mid-Central USA 1998 (ZOJ1181, POJ1318)
## 题目描述
编程实现:输入单词w,通过调整w的字母顺序,可以变成字典中的单词,输出这些单词。
## 输入描述
输入文件包含4部分:
1\) 一部字典,包含至少1个单词,至多100个单词,每个单词占一行;
2\) 字典后是一行字符串“XXXXXX”,表示字典结束;
3\) 一个或多个单词w,每个单词占一行;
4\) 输入文件的最后一行为字符串“XXXXXX”,代表输入文件结束。
所有单词,包括字典中的单词和字典后的单词,都只包含小写英文字母,至少包含一个字母,至多包含6个字母。字典中的单词不一定是按顺序排列的,但保证字典中的单词都是唯一的。
## 输出描述
对单词w,按字母顺序输出字典中所有满足以下条件的单词的列表:通过调整单词w中的字母顺序,可以变成字典中的单词。列表中的每个单词占一行。如果列表为空(即单词w不能转换成字典中的任何一个单词),则输出一行字符串“NOT A VALID WORD”。以上两种情形都在列表后,输出一行包含6个星号字符的字符串,表示列表结束。
## 样例输入
```txt
tarp
given
score
refund
only
trap
work
earn
course
pepper
part
XXXXXX
aptr
sett
oresuc
XXXXXX
```
## 样例输出
```txt
part
tarp
trap
******
NOT A VALID WORD
******
course
******
```