编程题
参赛名单
### 题目描述
A、B、C、D、E、F、G、H、I、J共10名学生有可能参加一场编程大赛,也可能不参加,因为某种原因他们是否参加比赛受到下列条件的约束:
1. 如果A参加,B也参加。
2. 如果C不参加,D也不参加。
3. A和C只能有一个人参加。
4. B和D有且仅有一个人参加。
5. D、E、F、G、H 中至少有2人参加。
6. C和G或者都参加,或者都不参加。
7. C、E、G、I中最多有2人参加。
8. 如果E参加,那么F和G也都参加。
9. 如果F参加,那么G、H就不能参加。
10. 如果I、J都不参加,H必需参加。
编程实现根据这些条件求这10名学生中参赛的名单,如果有多种可能,则输出所有的可能情况,每一种情况占一行,参赛同学按字母升序排列,用空格分隔。
比如:
C D G J
就是一种可能的情况。
### 输入描述
无输入。
### 输出描述
每个答案占一行,参赛同学按字母升序排列,用空格分隔。若有多个答案,则以字典序输出每个答案。
### 知识点
- 命题的表示
- 命题的真值
- 枚举
- 搜索
### 提示
枚举所有可能的组合,看是否满足10个约束条件,由于枚举量有10个,需要采用十重循环实现。也可以采用搜索实现。