编程题
谁干的好事?
### 题目描述
A、B、C、D、E中有num个人做了好事,truth个人说真话。
A说:“我和X中有且只有一个做了好事”。
B说:“C和E中有人做了好事”。
C说:“我和D和A中有人做了好事”。
D说:“B和C都没有做好事”。
E说:“我没有做好事”。
请问有哪些人做了好事?多组方案请一行一个输出。
### 输入描述
仅一行,先是一个整数num,接着是一个A~E的字符X,最后是一个整数truth。这三个数据用一个空格隔开,意义见题面。
### 输出描述
每行输出一组方案,方案中按字母序输出做好事的人的代号(A~E),不要空格隔开。
如果没有合法方案,输出一行一个0即可。
### 样例输入1
```txt
1 E 2
```
### 样例输出1
```txt
0
```
### 样例输入2
```txt
2 E 2
```
### 样例输出2
```txt
BD
BE
```
### 数据规模和约定
规定,1≤num≤2。
### 知识点
- 命题的表示
- 命题的真值
- 枚举
### 提示
如果num为1,依次枚举A-E做了好事,把A-E说的话用逻辑运算符表达成命题,如果这5个命题中恰好有truth个命题为True,则是一种符合要求的方案;如果num为2,则要依次枚举AB、…、DE做了好事(要用到二重循环),然后判断每种组合是否是符合要求的方案。